.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ArrayBytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FFF7E55D050]; System.Text.StringBuilder.set_Capacity(Int32)
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,1E1F9400428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,2228B2A7628
call      qword ptr [7FFF7E514E10]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],ebp
M00_L02
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E5696D0]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbp,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbp+8]
call      CORINFO_HELP_ASSIGN_REF
xor       r8d,r8d
mov       [rbp+8],r8
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E55D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFF7E2E7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFF7EDC76A8]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8DF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E44D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8DF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E44D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,13DF8CB14F90
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFF7E514828]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,13DF8CB14F90
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF7E514390]
mov       rcx,13DF8CB14F90
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFF7E5EE8C8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFF7E5EE370]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFF7EDC5320]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,1E1F9400298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFF7ED67198]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFF7ED64F90]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFF7EDAC330]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFF7ED672A0]
lea       rcx,[rbp+40]
call      qword ptr [7FFF7E44C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,1E1F9401DE8
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFF7E6A7320]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,13DF8CB14F90
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF7E5144B0]
mov       rcx,13DF8CB14F90
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8DF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E44D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,2228B290008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L03
test      r8b,18
jne       short M04_L01
test      r8b,4
je        short M04_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M04_L00
 
ret
M04_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M04_L00
M04_L02
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M04_L06
jmp       short M04_L00
M04_L03
 
cmp       r8,40
ja        short M04_L07
M04_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L11
M04_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M04_L00
M04_L07
 
cmp       r8,800
ja        short M04_L10
mov       r9,r8
shr       r9,6
M04_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L08
and       r8,3F
cmp       r8,10
ja        short M04_L04
jmp       short M04_L05
M04_L09
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L10
 
jmp       qword ptr [7FFF7E445B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M04_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M04_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFF7E55DA58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFF7E8DF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFF7E44D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FFF7E6857E8]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FFF7E685800]
int       3
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ArrayBytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FFF7E57D050]; System.Text.StringBuilder.set_Capacity(Int32)
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,1E149400428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,221DB317628
call      qword ptr [7FFF7E534E10]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],ebp
M00_L02
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E5896D0]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbp,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbp+8]
call      CORINFO_HELP_ASSIGN_REF
xor       r8d,r8d
mov       [rbp+8],r8
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E57D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFF7E307738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFF7EDE79D8]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8FF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8FF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,0FECEB900F0E4
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFF7E534828]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,0FECEB900F0E4
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF7E534390]
mov       rcx,0FECEB900F0E4
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFF7E60E8C8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFF7E60E370]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFF7EDE5650]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,1E149400298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFF7ED87198]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFF7ED84F90]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFF7EDC7E28]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFF7ED872A0]
lea       rcx,[rbp+40]
call      qword ptr [7FFF7E46C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,1E149401DE8
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFF7E6C7320]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,0FECEB900F0E4
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF7E5344B0]
mov       rcx,0FECEB900F0E4
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8FF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,221DB300008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L03
test      r8b,18
jne       short M04_L01
test      r8b,4
je        short M04_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M04_L00
 
ret
M04_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M04_L00
M04_L02
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M04_L06
jmp       short M04_L00
M04_L03
 
cmp       r8,40
ja        short M04_L07
M04_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L11
M04_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M04_L00
M04_L07
 
cmp       r8,800
ja        short M04_L10
mov       r9,r8
shr       r9,6
M04_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L08
and       r8,3F
cmp       r8,10
ja        short M04_L04
jmp       short M04_L05
M04_L09
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L10
 
jmp       qword ptr [7FFF7E465B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M04_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M04_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFF7E57DA58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFF7E8FF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FFF7E6A57E8]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FFF7E6A5800]
int       3
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ArrayBytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FFF7E65C150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,1EA3C000428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,22ACDDB7628
call      qword ptr [7FFF7E594810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],ebp
M00_L02
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E64EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbp,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbp+8]
call      CORINFO_HELP_ASSIGN_REF
xor       r8d,r8d
mov       [rbp+8],r8
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E65CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFF7E317738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFF7EDFC1E0]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,94659EAB54EF
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFF7E594228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,94659EAB54EF
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF7E56FD20]
mov       rcx,94659EAB54EF
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFF7E53F8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFF7E53F360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFF7EDF5A40]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,1EA3C000298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFF7ED97AB0]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFF7ED958A8]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFF7EDDC8E8]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFF7ED97BB8]
lea       rcx,[rbp+40]
call      qword ptr [7FFF7E47C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,1EA3C005C10
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFF7E6D75C8]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,94659EAB54EF
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF7E56FE40]
mov       rcx,94659EAB54EF
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,22ACDDA0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L02
test      r8b,18
je        short M04_L01
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M04_L00
 
ret
M04_L01
 
test      r8b,4
je        short M04_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M04_L00
M04_L02
 
cmp       r8,40
ja        short M04_L06
M04_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L10
M04_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L05
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M04_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M04_L00
M04_L06
 
cmp       r8,800
ja        short M04_L09
mov       r9,r8
shr       r9,6
M04_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L07
and       r8,3F
cmp       r8,10
ja        short M04_L03
jmp       short M04_L04
M04_L08
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L09
 
jmp       qword ptr [7FFF7E475B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       near ptr M04_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       near ptr M04_L04
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFF7E65CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFF7E90F6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FFF7E5BE9D0]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FFF7E5BE9E8]
int       3
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ArrayBytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FFF7E65C150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,2ABC2000428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,2EC53F97628
call      qword ptr [7FFF7E594810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],ebp
M00_L02
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E64EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbp,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbp+8]
call      CORINFO_HELP_ASSIGN_REF
xor       r8d,r8d
mov       [rbp+8],r8
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E65CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFF7E317738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFF7EDF7D98]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,0CF2674B06C97
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFF7E594228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,0CF2674B06C97
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF7E56FD20]
mov       rcx,0CF2674B06C97
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFF7E53F8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFF7E53F360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFF7EDF5950]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,2ABC2000298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFF7ED97AB0]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFF7ED958A8]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFF7EDDCC18]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFF7ED97BB8]
lea       rcx,[rbp+40]
call      qword ptr [7FFF7E47C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,2ABC2005C10
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFF7E6D75C8]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,0CF2674B06C97
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF7E56FE40]
mov       rcx,0CF2674B06C97
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,2EC53F80008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L03
test      r8b,18
jne       short M04_L01
test      r8b,4
je        short M04_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M04_L00
 
ret
M04_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M04_L00
M04_L02
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M04_L06
jmp       short M04_L00
M04_L03
 
cmp       r8,40
ja        short M04_L07
M04_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L11
M04_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M04_L00
M04_L07
 
cmp       r8,800
ja        short M04_L10
mov       r9,r8
shr       r9,6
M04_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L08
and       r8,3F
cmp       r8,10
ja        short M04_L04
jmp       short M04_L05
M04_L09
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L10
 
jmp       qword ptr [7FFF7E475B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M04_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M04_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFF7E65CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFF7E90F6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FFF7E5BE9D0]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FFF7E5BE9E8]
int       3
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ArrayBytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FFF7E62C150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,213E1C00428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,2546FA67648
call      qword ptr [7FFF7E564810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],ebp
M00_L02
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E61EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbp,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbp+8]
call      CORINFO_HELP_ASSIGN_REF
xor       r8d,r8d
mov       [rbp+8],r8
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E62CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFF7E2E7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFF7EDCD1D0]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8DF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E44D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8DF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E44D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,63F612002682
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFF7E564228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,63F612002682
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF7E53FD20]
mov       rcx,63F612002682
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFF7E50F8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFF7E50F360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFF7EDC6D78]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,213E1C00298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFF7ED6D1D0]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFF7ED66F58]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFF7EDAE118]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFF7ED6D2D8]
lea       rcx,[rbp+40]
call      qword ptr [7FFF7E44C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,213E1C05C10
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFF7E6A75C8]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,63F612002682
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF7E53FE40]
mov       rcx,63F612002682
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8DF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E44D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,2546FA50008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L03
test      r8b,18
jne       short M04_L01
test      r8b,4
je        short M04_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M04_L00
 
ret
M04_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M04_L00
M04_L02
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M04_L06
jmp       short M04_L00
M04_L03
 
cmp       r8,40
ja        short M04_L07
M04_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L11
M04_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M04_L00
M04_L07
 
cmp       r8,800
ja        short M04_L10
mov       r9,r8
shr       r9,6
M04_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L08
and       r8,3F
cmp       r8,10
ja        short M04_L04
jmp       short M04_L05
M04_L09
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L10
 
jmp       qword ptr [7FFF7E445B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M04_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M04_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFF7E62CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFF7E8DF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFF7E44D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FFF7E58E9D0]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FFF7E58E9E8]
int       3
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ArrayBytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FFF7E65C150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,2887C800428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,2C90E6B7648
call      qword ptr [7FFF7E594810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],ebp
M00_L02
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E64EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbp,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbp+8]
call      CORINFO_HELP_ASSIGN_REF
xor       r8d,r8d
mov       [rbp+8],r8
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E65CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFF7E317738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFF7EDFD2A8]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,76CECC523B4E
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFF7E594228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,76CECC523B4E
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF7E56FD20]
mov       rcx,76CECC523B4E
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFF7E53F8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFF7E53F360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFF7EDF6B20]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,2887C800298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFF7ED9D1D0]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFF7ED96F58]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFF7EDDDDE8]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFF7ED9D2D8]
lea       rcx,[rbp+40]
call      qword ptr [7FFF7E47C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,2887C805C10
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFF7E6D75C8]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,76CECC523B4E
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF7E56FE40]
mov       rcx,76CECC523B4E
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,2C90E6A0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L03
test      r8b,18
jne       short M04_L01
test      r8b,4
je        short M04_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M04_L00
 
ret
M04_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M04_L00
M04_L02
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M04_L06
jmp       short M04_L00
M04_L03
 
cmp       r8,40
ja        short M04_L07
M04_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L11
M04_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M04_L00
M04_L07
 
cmp       r8,800
ja        short M04_L10
mov       r9,r8
shr       r9,6
M04_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L08
and       r8,3F
cmp       r8,10
ja        short M04_L04
jmp       short M04_L05
M04_L09
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L10
 
jmp       qword ptr [7FFF7E475B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M04_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M04_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFF7E65CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFF7E90F6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FFF7E5BE9D0]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FFF7E5BE9E8]
int       3
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ArrayBytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FFF7E61C150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,19EACC00428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,1DF3AAF7648
call      qword ptr [7FFF7E554810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],ebp
M00_L02
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E60EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbp,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbp+8]
call      CORINFO_HELP_ASSIGN_REF
xor       r8d,r8d
mov       [rbp+8],r8
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E61CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFF7E2D7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFF7E234000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFF7EDBD1D0]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF7E234000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8CF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E43D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF7E234000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8CF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E43D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,15C85E18DD74
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFF7E554228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,15C85E18DD74
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF7E52FD20]
mov       rcx,15C85E18DD74
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFF7E4FF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFF7E4FF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFF7EDB6D78]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,19EACC00298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFF7ED5D1D0]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFF7ED56F58]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFF7ED9E118]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFF7ED5D2D8]
lea       rcx,[rbp+40]
call      qword ptr [7FFF7E43C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,19EACC05C10
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFF7E6975C8]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,15C85E18DD74
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF7E52FE40]
mov       rcx,15C85E18DD74
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E234000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8CF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E43D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,1DF3AAE0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L03
test      r8b,18
jne       short M04_L01
test      r8b,4
je        short M04_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M04_L00
 
ret
M04_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M04_L00
M04_L02
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M04_L06
jmp       short M04_L00
M04_L03
 
cmp       r8,40
ja        short M04_L07
M04_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L11
M04_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M04_L00
M04_L07
 
cmp       r8,800
ja        short M04_L10
mov       r9,r8
shr       r9,6
M04_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L08
and       r8,3F
cmp       r8,10
ja        short M04_L04
jmp       short M04_L05
M04_L09
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L10
 
jmp       qword ptr [7FFF7E435B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M04_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M04_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFF7E61CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E234000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFF7E8CF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFF7E43D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FFF7E57E9D0]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FFF7E57E9E8]
int       3
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ArrayBytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FFF7E64C150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,12A37800428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,16AC18C7648
call      qword ptr [7FFF7E584810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],ebp
M00_L02
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E63EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbp,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbp+8]
call      CORINFO_HELP_ASSIGN_REF
xor       r8d,r8d
mov       [rbp+8],r8
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E64CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFF7E307738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFF7EDED1D0]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8FF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8FF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,9382F79C2594
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFF7E584228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,9382F79C2594
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF7E55FD20]
mov       rcx,9382F79C2594
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFF7E52F8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFF7E52F360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFF7EDE6D78]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,12A37800298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFF7ED8D1D0]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFF7ED86F58]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFF7EDCE118]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFF7ED8D2D8]
lea       rcx,[rbp+40]
call      qword ptr [7FFF7E46C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,12A2F803C18
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFF7E6C75C8]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,9382F79C2594
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF7E55FE40]
mov       rcx,9382F79C2594
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8FF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,16AC18B0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L03
test      r8b,18
jne       short M04_L01
test      r8b,4
je        short M04_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M04_L00
 
ret
M04_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M04_L00
M04_L02
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M04_L06
jmp       short M04_L00
M04_L03
 
cmp       r8,40
ja        short M04_L07
M04_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L11
M04_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M04_L00
M04_L07
 
cmp       r8,800
ja        short M04_L10
mov       r9,r8
shr       r9,6
M04_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L08
and       r8,3F
cmp       r8,10
ja        short M04_L04
jmp       short M04_L05
M04_L09
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L10
 
jmp       qword ptr [7FFF7E465B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M04_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M04_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFF7E64CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFF7E8FF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FFF7E5AE9D0]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FFF7E5AE9E8]
int       3
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ReadOnlySpanBytesToStringComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
test      rdx,rdx
je        near ptr M00_L04
lea       rdi,[rdx+10]
mov       ebp,[rdx+8]
lea       edx,[rbp+rbp]
mov       rcx,rsi
call      qword ptr [7FFF7E56D050]; System.Text.StringBuilder.set_Capacity(Int32)
xor       r14d,r14d
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
cmp       r14d,ebp
jae       near ptr M00_L07
mov       ecx,r14d
add       rcx,rdi
mov       r8,288DAC00428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,2C96CB77628
call      qword ptr [7FFF7E524E10]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        near ptr M00_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        near ptr M00_L05
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],r15d
M00_L02
 
inc       r14d
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,r14d
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E5796D0]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       r15,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[r15+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [r15+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L04
 
call      qword ptr [7FFF7E8B4CF0]
mov       ecx,0F
mov       rdx,7FFF7E81E9A8
call      CORINFO_HELP_STRCNS
mov       rsi,rax
mov       ecx,1436
mov       rdx,7FFF7E6BB8C8
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rsi
call      qword ptr [7FFF7E3A6B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       ecx,1
mov       rdx,7FFF7E81E9A8
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FFF7E3A6B08]; System.String.Concat(System.String, System.String)
mov       rdi,rax
mov       rcx,offset MT_System.ArgumentNullException
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
call      qword ptr [7FFF7E8B4AE0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbp
call      qword ptr [7FFF7E526718]
mov       rcx,rbp
call      CORINFO_HELP_THROW
M00_L05
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M00_L01
M00_L06
 
mov       rcx,rsi
call      qword ptr [7FFF7E56D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M00_L02
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFF7E2F7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFF7EDD7F30]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8EF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8EF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,8BC77C331F1
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFF7E524828]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,8BC77C331F1
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF7E524390]
mov       rcx,8BC77C331F1
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFF7E5FE8C8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFF7E5FE370]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFF7EDD5878]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,288DAC00298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFF7ED77198]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFF7ED74F90]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFF7EDB7E28]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFF7ED772A0]
lea       rcx,[rbp+40]
call      qword ptr [7FFF7E45C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,288DAC01DE8
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFF7E6B7320]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,8BC77C331F1
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF7E5244B0]
mov       rcx,8BC77C331F1
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8EF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,2C96CB60008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.String.Concat(System.String, System.String)
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
test      rsi,rsi
je        near ptr M04_L02
mov       edi,[rsi+8]
test      edi,edi
je        short M04_L02
test      rbx,rbx
je        short M04_L00
mov       ebp,[rbx+8]
test      ebp,ebp
je        short M04_L00
mov       r14d,edi
lea       ecx,[r14+rbp]
test      ecx,ecx
jl        short M04_L01
call      System.String.FastAllocateString(Int32)
mov       r15,rax
cmp       [r15],r15b
lea       rcx,[r15+0C]
lea       rdx,[rsi+0C]
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
movsxd    r8,r14d
lea       rcx,[r15+r8*2+0C]
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r15
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L00
 
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L01
 
call      qword ptr [7FFF7E695D58]
int       3
M04_L02
 
test      rbx,rbx
je        short M04_L03
mov       ebp,[rbx+8]
xor       eax,eax
test      ebp,ebp
sete      al
test      eax,eax
je        short M04_L04
M04_L03
 
mov       rax,2C96CB60008
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L04
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L03
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M05_L00
 
ret
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M05_L00
M05_L02
 
test      r8,r8
je        short M05_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M05_L06
jmp       short M05_L00
M05_L03
 
cmp       r8,40
ja        short M05_L07
M05_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L11
M05_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L00
M05_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M05_L00
M05_L07
 
cmp       r8,800
ja        short M05_L10
mov       r9,r8
shr       r9,6
M05_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L08
and       r8,3F
cmp       r8,10
ja        short M05_L04
jmp       short M05_L05
M05_L09
 
cmp       rcx,rdx
je        near ptr M05_L00
M05_L10
 
jmp       qword ptr [7FFF7E455B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M06_L03
cmp       r8d,esi
jl        near ptr M06_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M06_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M06_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M06_L00
 
cmp       ebp,r10d
ja        near ptr M06_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M06_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFF7E56DA58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M06_L07
M06_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M06_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFF7E8EF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M06_L04
 
test      eax,eax
jne       short M06_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M06_L00
M06_L05
 
call      qword ptr [7FFF7E6957E8]
int       3
M06_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M06_L02
M06_L07
 
call      qword ptr [7FFF7E695800]
int       3
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ReadOnlySpanBytesToStringComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
test      rdx,rdx
je        near ptr M00_L04
lea       rdi,[rdx+10]
mov       ebp,[rdx+8]
lea       edx,[rbp+rbp]
mov       rcx,rsi
call      qword ptr [7FFF7E64C150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       r14d,r14d
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
cmp       r14d,ebp
jae       near ptr M00_L07
mov       ecx,r14d
add       rcx,rdi
mov       r8,25FF0000428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,2A07DE57628
call      qword ptr [7FFF7E584810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        near ptr M00_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        near ptr M00_L05
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],r15d
M00_L02
 
inc       r14d
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,r14d
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E63EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       r15,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[r15+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [r15+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L04
 
call      qword ptr [7FFF7E8C4CF0]
mov       ecx,0F
mov       rdx,7FFF7E82E9A8
call      CORINFO_HELP_STRCNS
mov       rsi,rax
mov       ecx,1436
mov       rdx,7FFF7E6CBB70
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rsi
call      qword ptr [7FFF7E3B6B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       ecx,1
mov       rdx,7FFF7E82E9A8
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FFF7E3B6B08]; System.String.Concat(System.String, System.String)
mov       rdi,rax
mov       rcx,offset MT_System.ArgumentNullException
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
call      qword ptr [7FFF7E8C4AE0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbp
call      qword ptr [7FFF7E5D6670]
mov       rcx,rbp
call      CORINFO_HELP_THROW
M00_L05
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M00_L01
M00_L06
 
mov       rcx,rsi
call      qword ptr [7FFF7E64CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M00_L02
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFF7E307738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFF7EDE7F30]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8FF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8FF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,824B57F3469F
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFF7E584228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,824B57F3469F
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF7E55FD20]
mov       rcx,824B57F3469F
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFF7E52F8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFF7E52F360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFF7EDE5BA8]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,25FF0000298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFF7ED87198]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFF7ED84F90]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFF7EDC7E28]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFF7ED872A0]
lea       rcx,[rbp+40]
call      qword ptr [7FFF7E46C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,25FEC003C18
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFF7E6C75C8]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,824B57F3469F
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF7E55FE40]
mov       rcx,824B57F3469F
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8FF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,2A07DE40008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.String.Concat(System.String, System.String)
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
test      rsi,rsi
je        near ptr M04_L02
mov       edi,[rsi+8]
test      edi,edi
je        short M04_L02
test      rbx,rbx
je        short M04_L00
mov       ebp,[rbx+8]
test      ebp,ebp
je        short M04_L00
mov       r14d,edi
lea       ecx,[r14+rbp]
test      ecx,ecx
jl        short M04_L01
call      System.String.FastAllocateString(Int32)
mov       r15,rax
cmp       [r15],r15b
lea       rcx,[r15+0C]
lea       rdx,[rsi+0C]
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
movsxd    r8,r14d
lea       rcx,[r15+r8*2+0C]
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r15
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L00
 
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L01
 
call      qword ptr [7FFF7E5AEF40]
int       3
M04_L02
 
test      rbx,rbx
je        short M04_L03
mov       ebp,[rbx+8]
xor       eax,eax
test      ebp,ebp
sete      al
test      eax,eax
je        short M04_L04
M04_L03
 
mov       rax,2A07DE40008
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L04
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L03
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M05_L00
 
ret
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M05_L00
M05_L02
 
test      r8,r8
je        short M05_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M05_L06
jmp       short M05_L00
M05_L03
 
cmp       r8,40
ja        short M05_L07
M05_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L11
M05_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L00
M05_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M05_L00
M05_L07
 
cmp       r8,800
ja        short M05_L10
mov       r9,r8
shr       r9,6
M05_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L08
and       r8,3F
cmp       r8,10
ja        short M05_L04
jmp       short M05_L05
M05_L09
 
cmp       rcx,rdx
je        near ptr M05_L00
M05_L10
 
jmp       qword ptr [7FFF7E465B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M06_L03
cmp       r8d,esi
jl        near ptr M06_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M06_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M06_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M06_L00
 
cmp       ebp,r10d
ja        near ptr M06_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M06_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFF7E64CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M06_L07
M06_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M06_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFF7E8FF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M06_L04
 
test      eax,eax
jne       short M06_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M06_L00
M06_L05
 
call      qword ptr [7FFF7E5AE9D0]
int       3
M06_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M06_L02
M06_L07
 
call      qword ptr [7FFF7E5AE9E8]
int       3
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ReadOnlySpanBytesToStringComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
test      rdx,rdx
je        near ptr M00_L04
lea       rdi,[rdx+10]
mov       ebp,[rdx+8]
lea       edx,[rbp+rbp]
mov       rcx,rsi
call      qword ptr [7FFF7E65C150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       r14d,r14d
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
cmp       r14d,ebp
jae       near ptr M00_L07
mov       ecx,r14d
add       rcx,rdi
mov       r8,1838A400428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,1C41C4B7628
call      qword ptr [7FFF7E594810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        near ptr M00_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        near ptr M00_L05
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],r15d
M00_L02
 
inc       r14d
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,r14d
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E64EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       r15,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[r15+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [r15+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L04
 
call      qword ptr [7FFF7E8D4CF0]
mov       ecx,0F
mov       rdx,7FFF7E83E9A8
call      CORINFO_HELP_STRCNS
mov       rsi,rax
mov       ecx,1436
mov       rdx,7FFF7E6DBB70
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rsi
call      qword ptr [7FFF7E3C6B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       ecx,1
mov       rdx,7FFF7E83E9A8
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FFF7E3C6B08]; System.String.Concat(System.String, System.String)
mov       rdi,rax
mov       rcx,offset MT_System.ArgumentNullException
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
call      qword ptr [7FFF7E8D4AE0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbp
call      qword ptr [7FFF7E5E6670]
mov       rcx,rbp
call      CORINFO_HELP_THROW
M00_L05
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M00_L01
M00_L06
 
mov       rcx,rsi
call      qword ptr [7FFF7E65CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M00_L02
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFF7E317738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFF7EDFC330]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,0C9A2A69754C0
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFF7E594228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,0C9A2A69754C0
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF7E56FD20]
mov       rcx,0C9A2A69754C0
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFF7E53F8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFF7E53F360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFF7EDF5F98]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,1838A400298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFF7ED97AB0]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFF7ED958A8]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFF7EDDCC18]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFF7ED97BB8]
lea       rcx,[rbp+40]
call      qword ptr [7FFF7E47C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,1838A405C10
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFF7E6D75C8]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,0C9A2A69754C0
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF7E56FE40]
mov       rcx,0C9A2A69754C0
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,1C41C4A0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.String.Concat(System.String, System.String)
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
test      rsi,rsi
je        near ptr M04_L02
mov       edi,[rsi+8]
test      edi,edi
je        short M04_L02
test      rbx,rbx
je        short M04_L00
mov       ebp,[rbx+8]
test      ebp,ebp
je        short M04_L00
mov       r14d,edi
lea       ecx,[r14+rbp]
test      ecx,ecx
jl        short M04_L01
call      System.String.FastAllocateString(Int32)
mov       r15,rax
cmp       [r15],r15b
lea       rcx,[r15+0C]
lea       rdx,[rsi+0C]
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
movsxd    r8,r14d
lea       rcx,[r15+r8*2+0C]
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r15
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L00
 
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L01
 
call      qword ptr [7FFF7E5BEF40]
int       3
M04_L02
 
test      rbx,rbx
je        short M04_L03
mov       ebp,[rbx+8]
xor       eax,eax
test      ebp,ebp
sete      al
test      eax,eax
je        short M04_L04
M04_L03
 
mov       rax,1C41C4A0008
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L04
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L03
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M05_L00
 
ret
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M05_L00
M05_L02
 
test      r8,r8
je        short M05_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M05_L06
jmp       short M05_L00
M05_L03
 
cmp       r8,40
ja        short M05_L07
M05_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L11
M05_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L00
M05_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M05_L00
M05_L07
 
cmp       r8,800
ja        short M05_L10
mov       r9,r8
shr       r9,6
M05_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L08
and       r8,3F
cmp       r8,10
ja        short M05_L04
jmp       short M05_L05
M05_L09
 
cmp       rcx,rdx
je        near ptr M05_L00
M05_L10
 
jmp       qword ptr [7FFF7E475B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M06_L03
cmp       r8d,esi
jl        near ptr M06_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M06_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M06_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M06_L00
 
cmp       ebp,r10d
ja        near ptr M06_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M06_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFF7E65CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M06_L07
M06_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M06_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFF7E90F6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M06_L04
 
test      eax,eax
jne       short M06_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M06_L00
M06_L05
 
call      qword ptr [7FFF7E5BE9D0]
int       3
M06_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M06_L02
M06_L07
 
call      qword ptr [7FFF7E5BE9E8]
int       3
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ReadOnlySpanBytesToStringComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
test      rdx,rdx
je        near ptr M00_L04
lea       rdi,[rdx+10]
mov       ebp,[rdx+8]
lea       edx,[rbp+rbp]
mov       rcx,rsi
call      qword ptr [7FFF7E62C150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       r14d,r14d
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
cmp       r14d,ebp
jae       near ptr M00_L07
mov       ecx,r14d
add       rcx,rdi
mov       r8,10E7B400428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,14F092C7628
call      qword ptr [7FFF7E564810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        near ptr M00_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        near ptr M00_L05
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],r15d
M00_L02
 
inc       r14d
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,r14d
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E61EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       r15,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[r15+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [r15+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L04
 
call      qword ptr [7FFF7E8A4CF0]
mov       ecx,0F
mov       rdx,7FFF7E80E9A8
call      CORINFO_HELP_STRCNS
mov       rsi,rax
mov       ecx,1436
mov       rdx,7FFF7E6ABB70
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rsi
call      qword ptr [7FFF7E396B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       ecx,1
mov       rdx,7FFF7E80E9A8
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FFF7E396B08]; System.String.Concat(System.String, System.String)
mov       rdi,rax
mov       rcx,offset MT_System.ArgumentNullException
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
call      qword ptr [7FFF7E8A4AE0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbp
call      qword ptr [7FFF7E5B6670]
mov       rcx,rbp
call      CORINFO_HELP_THROW
M00_L05
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M00_L01
M00_L06
 
mov       rcx,rsi
call      qword ptr [7FFF7E62CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M00_L02
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFF7E2E7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFF7EDCC630]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8DF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E44D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8DF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E44D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,3CD2DC575E36
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFF7E564228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,3CD2DC575E36
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF7E53FD20]
mov       rcx,3CD2DC575E36
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFF7E50F8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFF7E50F360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFF7EDC5EA8]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,10E7B400298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFF7ED67AB0]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFF7ED658A8]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFF7EDAC8E8]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFF7ED67BB8]
lea       rcx,[rbp+40]
call      qword ptr [7FFF7E44C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,10E7B405C10
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFF7E6A75C8]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,3CD2DC575E36
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF7E53FE40]
mov       rcx,3CD2DC575E36
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8DF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E44D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,14F092B0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.String.Concat(System.String, System.String)
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
test      rsi,rsi
je        near ptr M04_L02
mov       edi,[rsi+8]
test      edi,edi
je        short M04_L02
test      rbx,rbx
je        short M04_L00
mov       ebp,[rbx+8]
test      ebp,ebp
je        short M04_L00
mov       r14d,edi
lea       ecx,[r14+rbp]
test      ecx,ecx
jl        short M04_L01
call      System.String.FastAllocateString(Int32)
mov       r15,rax
cmp       [r15],r15b
lea       rcx,[r15+0C]
lea       rdx,[rsi+0C]
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
movsxd    r8,r14d
lea       rcx,[r15+r8*2+0C]
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r15
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L00
 
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L01
 
call      qword ptr [7FFF7E58EF40]
int       3
M04_L02
 
test      rbx,rbx
je        short M04_L03
mov       ebp,[rbx+8]
xor       eax,eax
test      ebp,ebp
sete      al
test      eax,eax
je        short M04_L04
M04_L03
 
mov       rax,14F092B0008
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L04
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L03
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M05_L00
 
ret
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M05_L00
M05_L02
 
test      r8,r8
je        short M05_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M05_L06
jmp       short M05_L00
M05_L03
 
cmp       r8,40
ja        short M05_L07
M05_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L11
M05_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L00
M05_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M05_L00
M05_L07
 
cmp       r8,800
ja        short M05_L10
mov       r9,r8
shr       r9,6
M05_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L08
and       r8,3F
cmp       r8,10
ja        short M05_L04
jmp       short M05_L05
M05_L09
 
cmp       rcx,rdx
je        near ptr M05_L00
M05_L10
 
jmp       qword ptr [7FFF7E445B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M06_L03
cmp       r8d,esi
jl        near ptr M06_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M06_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M06_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M06_L00
 
cmp       ebp,r10d
ja        near ptr M06_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M06_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFF7E62CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M06_L07
M06_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M06_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFF7E8DF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFF7E44D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M06_L04
 
test      eax,eax
jne       short M06_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M06_L00
M06_L05
 
call      qword ptr [7FFF7E58E9D0]
int       3
M06_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M06_L02
M06_L07
 
call      qword ptr [7FFF7E58E9E8]
int       3
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ReadOnlySpanBytesToStringComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
test      rdx,rdx
je        near ptr M00_L04
lea       rdi,[rdx+10]
mov       ebp,[rdx+8]
lea       edx,[rbp+rbp]
mov       rcx,rsi
call      qword ptr [7FFF7E65C150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       r14d,r14d
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
cmp       r14d,ebp
jae       near ptr M00_L07
mov       ecx,r14d
add       rcx,rdi
mov       r8,1BC5AC00428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,1FCECB47648
call      qword ptr [7FFF7E594810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        near ptr M00_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        near ptr M00_L05
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],r15d
M00_L02
 
inc       r14d
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,r14d
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E64EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       r15,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[r15+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [r15+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L04
 
call      qword ptr [7FFF7E8D4CF0]
mov       ecx,0F
mov       rdx,7FFF7E83E9A8
call      CORINFO_HELP_STRCNS
mov       rsi,rax
mov       ecx,1436
mov       rdx,7FFF7E6DBB70
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rsi
call      qword ptr [7FFF7E3C6B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       ecx,1
mov       rdx,7FFF7E83E9A8
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FFF7E3C6B08]; System.String.Concat(System.String, System.String)
mov       rdi,rax
mov       rcx,offset MT_System.ArgumentNullException
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
call      qword ptr [7FFF7E8D4AE0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbp
call      qword ptr [7FFF7E5E6670]
mov       rcx,rbp
call      CORINFO_HELP_THROW
M00_L05
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M00_L01
M00_L06
 
mov       rcx,rsi
call      qword ptr [7FFF7E65CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M00_L02
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFF7E317738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFF7EDFD800]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,831D6B9CF617
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFF7E594228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,831D6B9CF617
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF7E56FD20]
mov       rcx,831D6B9CF617
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFF7E53F8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFF7E53F360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFF7EDF7078]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,1BC5AC00298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFF7ED9D1D0]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFF7ED96F58]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFF7EDDDDE8]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFF7ED9D2D8]
lea       rcx,[rbp+40]
call      qword ptr [7FFF7E47C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,1BC5AC05C10
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFF7E6D75C8]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,831D6B9CF617
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF7E56FE40]
mov       rcx,831D6B9CF617
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,1FCECB30008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.String.Concat(System.String, System.String)
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
test      rsi,rsi
je        near ptr M04_L02
mov       edi,[rsi+8]
test      edi,edi
je        short M04_L02
test      rbx,rbx
je        short M04_L00
mov       ebp,[rbx+8]
test      ebp,ebp
je        short M04_L00
mov       r14d,edi
lea       ecx,[r14+rbp]
test      ecx,ecx
jl        short M04_L01
call      System.String.FastAllocateString(Int32)
mov       r15,rax
cmp       [r15],r15b
lea       rcx,[r15+0C]
lea       rdx,[rsi+0C]
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
movsxd    r8,r14d
lea       rcx,[r15+r8*2+0C]
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r15
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L00
 
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L01
 
call      qword ptr [7FFF7E5BEF40]
int       3
M04_L02
 
test      rbx,rbx
je        short M04_L03
mov       ebp,[rbx+8]
xor       eax,eax
test      ebp,ebp
sete      al
test      eax,eax
je        short M04_L04
M04_L03
 
mov       rax,1FCECB30008
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L04
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L03
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M05_L00
 
ret
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M05_L00
M05_L02
 
test      r8,r8
je        short M05_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M05_L06
jmp       short M05_L00
M05_L03
 
cmp       r8,40
ja        short M05_L07
M05_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L11
M05_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L00
M05_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M05_L00
M05_L07
 
cmp       r8,800
ja        short M05_L10
mov       r9,r8
shr       r9,6
M05_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L08
and       r8,3F
cmp       r8,10
ja        short M05_L04
jmp       short M05_L05
M05_L09
 
cmp       rcx,rdx
je        near ptr M05_L00
M05_L10
 
jmp       qword ptr [7FFF7E475B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M06_L03
cmp       r8d,esi
jl        near ptr M06_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M06_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M06_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M06_L00
 
cmp       ebp,r10d
ja        near ptr M06_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M06_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFF7E65CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M06_L07
M06_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M06_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFF7E90F6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M06_L04
 
test      eax,eax
jne       short M06_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M06_L00
M06_L05
 
call      qword ptr [7FFF7E5BE9D0]
int       3
M06_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M06_L02
M06_L07
 
call      qword ptr [7FFF7E5BE9E8]
int       3
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ReadOnlySpanBytesToStringComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
test      rdx,rdx
je        near ptr M00_L04
lea       rdi,[rdx+10]
mov       ebp,[rdx+8]
lea       edx,[rbp+rbp]
mov       rcx,rsi
call      qword ptr [7FFF7E63C150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       r14d,r14d
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
cmp       r14d,ebp
jae       near ptr M00_L07
mov       ecx,r14d
add       rcx,rdi
mov       r8,203C9800428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,2445B837648
call      qword ptr [7FFF7E574810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        near ptr M00_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        near ptr M00_L05
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],r15d
M00_L02
 
inc       r14d
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,r14d
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E62EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       r15,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[r15+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [r15+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L04
 
call      qword ptr [7FFF7E8B4CF0]
mov       ecx,0F
mov       rdx,7FFF7E81E9A8
call      CORINFO_HELP_STRCNS
mov       rsi,rax
mov       ecx,1436
mov       rdx,7FFF7E6BBB70
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rsi
call      qword ptr [7FFF7E3A6B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       ecx,1
mov       rdx,7FFF7E81E9A8
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FFF7E3A6B08]; System.String.Concat(System.String, System.String)
mov       rdi,rax
mov       rcx,offset MT_System.ArgumentNullException
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
call      qword ptr [7FFF7E8B4AE0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbp
call      qword ptr [7FFF7E5C6670]
mov       rcx,rbp
call      CORINFO_HELP_THROW
M00_L05
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M00_L01
M00_L06
 
mov       rcx,rsi
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M00_L02
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFF7E2F7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFF7EDDD800]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8EF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8EF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,3C80379A8524
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFF7E574228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,3C80379A8524
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF7E54FD20]
mov       rcx,3C80379A8524
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFF7E51F8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFF7E51F360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFF7EDD7078]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,203C9800298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFF7ED7D1D0]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFF7ED76F58]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFF7EDBDDE8]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFF7ED7D2D8]
lea       rcx,[rbp+40]
call      qword ptr [7FFF7E45C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,203C9805C10
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFF7E6B75C8]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,3C80379A8524
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF7E54FE40]
mov       rcx,3C80379A8524
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8EF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,2445B820008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.String.Concat(System.String, System.String)
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
test      rsi,rsi
je        near ptr M04_L02
mov       edi,[rsi+8]
test      edi,edi
je        short M04_L02
test      rbx,rbx
je        short M04_L00
mov       ebp,[rbx+8]
test      ebp,ebp
je        short M04_L00
mov       r14d,edi
lea       ecx,[r14+rbp]
test      ecx,ecx
jl        short M04_L01
call      System.String.FastAllocateString(Int32)
mov       r15,rax
cmp       [r15],r15b
lea       rcx,[r15+0C]
lea       rdx,[rsi+0C]
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
movsxd    r8,r14d
lea       rcx,[r15+r8*2+0C]
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r15
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L00
 
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L01
 
call      qword ptr [7FFF7E59EF40]
int       3
M04_L02
 
test      rbx,rbx
je        short M04_L03
mov       ebp,[rbx+8]
xor       eax,eax
test      ebp,ebp
sete      al
test      eax,eax
je        short M04_L04
M04_L03
 
mov       rax,2445B820008
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L04
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L03
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M05_L00
 
ret
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M05_L00
M05_L02
 
test      r8,r8
je        short M05_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M05_L06
jmp       short M05_L00
M05_L03
 
cmp       r8,40
ja        short M05_L07
M05_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L11
M05_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L00
M05_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M05_L00
M05_L07
 
cmp       r8,800
ja        short M05_L10
mov       r9,r8
shr       r9,6
M05_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L08
and       r8,3F
cmp       r8,10
ja        short M05_L04
jmp       short M05_L05
M05_L09
 
cmp       rcx,rdx
je        near ptr M05_L00
M05_L10
 
jmp       qword ptr [7FFF7E455B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M06_L03
cmp       r8d,esi
jl        near ptr M06_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M06_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M06_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M06_L00
 
cmp       ebp,r10d
ja        near ptr M06_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M06_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFF7E63CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M06_L07
M06_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M06_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFF7E8EF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M06_L04
 
test      eax,eax
jne       short M06_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M06_L00
M06_L05
 
call      qword ptr [7FFF7E59E9D0]
int       3
M06_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M06_L02
M06_L07
 
call      qword ptr [7FFF7E59E9E8]
int       3
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ReadOnlySpanBytesToStringComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
test      rdx,rdx
je        near ptr M00_L04
lea       rdi,[rdx+10]
mov       ebp,[rdx+8]
lea       edx,[rbp+rbp]
mov       rcx,rsi
call      qword ptr [7FFF7E62C150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       r14d,r14d
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
cmp       r14d,ebp
jae       near ptr M00_L07
mov       ecx,r14d
add       rcx,rdi
mov       r8,167D8000428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,1A8660E7648
call      qword ptr [7FFF7E564810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        near ptr M00_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        near ptr M00_L05
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],r15d
M00_L02
 
inc       r14d
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,r14d
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E61EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       r15,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[r15+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [r15+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L04
 
call      qword ptr [7FFF7E8A4CF0]
mov       ecx,0F
mov       rdx,7FFF7E80E9A8
call      CORINFO_HELP_STRCNS
mov       rsi,rax
mov       ecx,1436
mov       rdx,7FFF7E6ABB70
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rsi
call      qword ptr [7FFF7E396B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       ecx,1
mov       rdx,7FFF7E80E9A8
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FFF7E396B08]; System.String.Concat(System.String, System.String)
mov       rdi,rax
mov       rcx,offset MT_System.ArgumentNullException
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
call      qword ptr [7FFF7E8A4AE0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbp
call      qword ptr [7FFF7E5B6670]
mov       rcx,rbp
call      CORINFO_HELP_THROW
M00_L05
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M00_L01
M00_L06
 
mov       rcx,rsi
call      qword ptr [7FFF7E62CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M00_L02
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFF7E2E7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFF7EDCD728]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8DF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E44D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8DF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E44D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,0B0DCB66620F0
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFF7E564228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,0B0DCB66620F0
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF7E53FD20]
mov       rcx,0B0DCB66620F0
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFF7E50F8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFF7E50F360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFF7EDC72D0]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,167D8000298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFF7ED6D1D0]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFF7ED66F58]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFF7EDAE118]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFF7ED6D2D8]
lea       rcx,[rbp+40]
call      qword ptr [7FFF7E44C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,167D4003C18
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFF7E6A75C8]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,0B0DCB66620F0
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF7E53FE40]
mov       rcx,0B0DCB66620F0
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8DF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E44D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,1A8660D0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.String.Concat(System.String, System.String)
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
test      rsi,rsi
je        near ptr M04_L02
mov       edi,[rsi+8]
test      edi,edi
je        short M04_L02
test      rbx,rbx
je        short M04_L00
mov       ebp,[rbx+8]
test      ebp,ebp
je        short M04_L00
mov       r14d,edi
lea       ecx,[r14+rbp]
test      ecx,ecx
jl        short M04_L01
call      System.String.FastAllocateString(Int32)
mov       r15,rax
cmp       [r15],r15b
lea       rcx,[r15+0C]
lea       rdx,[rsi+0C]
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
movsxd    r8,r14d
lea       rcx,[r15+r8*2+0C]
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r15
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L00
 
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L01
 
call      qword ptr [7FFF7E58EF40]
int       3
M04_L02
 
test      rbx,rbx
je        short M04_L03
mov       ebp,[rbx+8]
xor       eax,eax
test      ebp,ebp
sete      al
test      eax,eax
je        short M04_L04
M04_L03
 
mov       rax,1A8660D0008
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L04
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L03
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M05_L00
 
ret
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M05_L00
M05_L02
 
test      r8,r8
je        short M05_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M05_L06
jmp       short M05_L00
M05_L03
 
cmp       r8,40
ja        short M05_L07
M05_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L11
M05_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L00
M05_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M05_L00
M05_L07
 
cmp       r8,800
ja        short M05_L10
mov       r9,r8
shr       r9,6
M05_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L08
and       r8,3F
cmp       r8,10
ja        short M05_L04
jmp       short M05_L05
M05_L09
 
cmp       rcx,rdx
je        near ptr M05_L00
M05_L10
 
jmp       qword ptr [7FFF7E445B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M06_L03
cmp       r8d,esi
jl        near ptr M06_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M06_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M06_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M06_L00
 
cmp       ebp,r10d
ja        near ptr M06_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M06_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFF7E62CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M06_L07
M06_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M06_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFF7E8DF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFF7E44D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M06_L04
 
test      eax,eax
jne       short M06_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M06_L00
M06_L05
 
call      qword ptr [7FFF7E58E9D0]
int       3
M06_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M06_L02
M06_L07
 
call      qword ptr [7FFF7E58E9E8]
int       3
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ReadOnlySpanBytesToStringComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
test      rdx,rdx
je        near ptr M00_L04
lea       rdi,[rdx+10]
mov       ebp,[rdx+8]
lea       edx,[rbp+rbp]
mov       rcx,rsi
call      qword ptr [7FFF7E61C150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       r14d,r14d
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
cmp       r14d,ebp
jae       near ptr M00_L07
mov       ecx,r14d
add       rcx,rdi
mov       r8,170D4800428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,1B166907648
call      qword ptr [7FFF7E554810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        near ptr M00_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        near ptr M00_L05
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],r15d
M00_L02
 
inc       r14d
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,r14d
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E60EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       r15,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[r15+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [r15+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L04
 
call      qword ptr [7FFF7E894CF0]
mov       ecx,0F
mov       rdx,7FFF7E7FE9A8
call      CORINFO_HELP_STRCNS
mov       rsi,rax
mov       ecx,1436
mov       rdx,7FFF7E69BB70
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rsi
call      qword ptr [7FFF7E386B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       ecx,1
mov       rdx,7FFF7E7FE9A8
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FFF7E386B08]; System.String.Concat(System.String, System.String)
mov       rdi,rax
mov       rcx,offset MT_System.ArgumentNullException
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
call      qword ptr [7FFF7E894AE0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbp
call      qword ptr [7FFF7E5A6670]
mov       rcx,rbp
call      CORINFO_HELP_THROW
M00_L05
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M00_L01
M00_L06
 
mov       rcx,rsi
call      qword ptr [7FFF7E61CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M00_L02
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFF7E2D7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFF7E234000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFF7EDBCFD8]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF7E234000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8CF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E43D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF7E234000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8CF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E43D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,77BA95C626E1
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFF7E554228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,77BA95C626E1
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF7E52FD20]
mov       rcx,77BA95C626E1
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFF7E4FF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFF7E4FF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFF7EDB7078]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,170D4800298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFF7ED5D1D0]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFF7ED56F58]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFF7ED9DDE8]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFF7ED5D2D8]
lea       rcx,[rbp+40]
call      qword ptr [7FFF7E43C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,170D4805C10
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFF7E6975C8]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,77BA95C626E1
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF7E52FE40]
mov       rcx,77BA95C626E1
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E234000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8CF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E43D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,1B1668F0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.String.Concat(System.String, System.String)
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
test      rsi,rsi
je        near ptr M04_L02
mov       edi,[rsi+8]
test      edi,edi
je        short M04_L02
test      rbx,rbx
je        short M04_L00
mov       ebp,[rbx+8]
test      ebp,ebp
je        short M04_L00
mov       r14d,edi
lea       ecx,[r14+rbp]
test      ecx,ecx
jl        short M04_L01
call      System.String.FastAllocateString(Int32)
mov       r15,rax
cmp       [r15],r15b
lea       rcx,[r15+0C]
lea       rdx,[rsi+0C]
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
movsxd    r8,r14d
lea       rcx,[r15+r8*2+0C]
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r15
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L00
 
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L01
 
call      qword ptr [7FFF7E57EF40]
int       3
M04_L02
 
test      rbx,rbx
je        short M04_L03
mov       ebp,[rbx+8]
xor       eax,eax
test      ebp,ebp
sete      al
test      eax,eax
je        short M04_L04
M04_L03
 
mov       rax,1B1668F0008
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L04
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L03
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M05_L00
 
ret
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M05_L00
M05_L02
 
test      r8,r8
je        short M05_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M05_L06
jmp       short M05_L00
M05_L03
 
cmp       r8,40
ja        short M05_L07
M05_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L11
M05_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L00
M05_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M05_L00
M05_L07
 
cmp       r8,800
ja        short M05_L10
mov       r9,r8
shr       r9,6
M05_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L08
and       r8,3F
cmp       r8,10
ja        short M05_L04
jmp       short M05_L05
M05_L09
 
cmp       rcx,rdx
je        near ptr M05_L00
M05_L10
 
jmp       qword ptr [7FFF7E435B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M06_L03
cmp       r8d,esi
jl        near ptr M06_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M06_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M06_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M06_L00
 
cmp       ebp,r10d
ja        near ptr M06_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M06_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFF7E61CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M06_L07
M06_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M06_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E234000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFF7E8CF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFF7E43D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M06_L04
 
test      eax,eax
jne       short M06_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M06_L00
M06_L05
 
call      qword ptr [7FFF7E57E9D0]
int       3
M06_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M06_L02
M06_L07
 
call      qword ptr [7FFF7E57E9E8]
int       3
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,40
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L06
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,247B3C00428
mov       r8,[r8]
mov       [rsp+38],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],1
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,28841A07628
call      qword ptr [7FFF7E3C6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L05
lea       rdx,[rax+0C]
mov       r15d,[rax+8]
test      r15d,r15d
je        short M00_L05
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L04
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L02
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L05
M00_L02
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
call      qword ptr [7FFF7EE3C0F0]
test      eax,eax
je        near ptr M00_L13
jmp       near ptr M00_L12
M00_L04
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFF7E58D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L05
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L06
 
mov       rcx,rsi
call      qword ptr [7FFF7E5996D0]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L07
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
jne       short M00_L10
jmp       short M00_L08
M00_L07
 
call      qword ptr [7FFF7EE3C0F0]
test      eax,eax
jne       short M00_L10
M00_L08
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L09
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
jne       short M00_L10
jmp       near ptr M00_L24
M00_L09
 
call      qword ptr [7FFF7EE3C0F0]
test      eax,eax
je        near ptr M00_L24
M00_L10
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L13
M00_L11
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       near ptr M00_L03
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
je        short M00_L13
M00_L12
 
inc       r14d
cmp       edi,r14d
jg        short M00_L11
M00_L13
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        short M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L14
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FFF7EE3C0F0]
test      eax,eax
je        short M00_L20
M00_L16
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FFF7EE3C0F0]
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       r15,rsi
M00_L21
 
mov       [rsp+30],r15
mov       rdi,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rdi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rdi+8],rax
add       rsp,40
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      System.String.FastAllocateString(Int32)
mov       r15,rax
mov       r8d,ebp
cmp       [r15],r15b
lea       rcx,[r15+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       r15,288419F0008
jmp       short M00_L21
M00_L24
 
mov       r15,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,81BCC1F133DB
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF7E58C000]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E58C108]; System.Text.ValueStringBuilder.ToString()
mov       rcx,81BCC1F133DB
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E58C240]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF7E546790]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF7E475B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E58DA58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E6B57E8]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E6B5800]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,288419F0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
Extern method
System.String.FastAllocateString(Int32)

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,40
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,24CDB400428
mov       r8,[r8]
mov       [rsp+38],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],1
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,28D6D2F7628
call      qword ptr [7FFF7E3B6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r15d,[rax+8]
test      r15d,r15d
je        short M00_L04
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L02
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFF7E64CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E63EB18]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FFF7EE2EAA8]
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FFF7EE2EAA8]
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L13
M00_L10
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FFF7EE2EAA8]
test      eax,eax
je        short M00_L13
M00_L12
 
inc       r14d
cmp       edi,r14d
jg        short M00_L10
M00_L13
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        short M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L14
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FFF7EE2EAA8]
test      eax,eax
je        short M00_L20
M00_L16
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FFF7EE2EAA8]
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       rdi,rsi
M00_L21
 
mov       [rsp+30],rdi
mov       rsi,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rsi+8],rax
add       rsp,40
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      System.String.FastAllocateString(Int32)
mov       rdi,rax
mov       r8d,ebp
cmp       [rdi],dil
lea       rcx,[rdi+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       rdi,28D6D2E0008
jmp       short M00_L21
M00_L24
 
mov       rdi,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,1B490023A44B
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF7E6470D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E6471E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,1B490023A44B
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E647318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF7E5D66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF7E465B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E64CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8FF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E5AE9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E5AE9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8FF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,28D6D2E0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
Extern method
System.String.FastAllocateString(Int32)

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,2A4EBC00428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,2E579C47628
call      qword ptr [7FFF7E3A6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E62EB18]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FFF7EC2ECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FFF7EC2ECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L12
M00_L10
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
je        short M00_L12
M00_L11
 
inc       r14d
cmp       edi,r14d
jg        short M00_L10
M00_L12
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        near ptr M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L13
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L16
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
je        short M00_L20
M00_L14
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L13
jmp       short M00_L20
M00_L15
 
call      qword ptr [7FFF7EC2ECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L12
jmp       short M00_L11
M00_L16
 
call      qword ptr [7FFF7EC2ECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
jmp       short M00_L14
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FFF7EC2ECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       r15,rsi
M00_L21
 
mov       [rsp+38],r15
mov       rdi,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rdi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rdi+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      System.String.FastAllocateString(Int32)
mov       r15,rax
mov       r8d,ebp
cmp       [r15],r15b
lea       rcx,[r15+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       r15,2E579C30008
jmp       short M00_L21
M00_L24
 
mov       r15,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0E8BD3029D4AC
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF7E6370D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E6371E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0E8BD3029D4AC
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E637318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF7E5C66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF7E455B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E63CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8EF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E59E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E59E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8EF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2E579C30008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
sub       rsp,28
movzx     ecx,cx
call      qword ptr [7FFF8DE07370]; Precode of System.Globalization.CharUnicodeInfo.GetCategoryCasingTableOffsetNoBoundsChecks(UInt32)
mov       rcx,[7FFF8DE20750]
cmp       byte ptr [rcx+rax],0
setl      al
movzx     eax,al
add       rsp,28
ret
 
Extern method
System.String.FastAllocateString(Int32)

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,1EAEAC00428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,22B7CB77628
call      qword ptr [7FFF7E396C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E62CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E61EB18]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FFF7EC1ECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FFF7EC1ECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L13
M00_L10
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FFF7EC1ECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L13
M00_L12
 
inc       r14d
cmp       edi,r14d
jg        short M00_L10
M00_L13
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        short M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L14
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FFF7EC1ECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L16
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FFF7EC1ECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       rdi,rsi
M00_L21
 
mov       [rsp+38],rdi
mov       rsi,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rsi+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      System.String.FastAllocateString(Int32)
mov       rdi,rax
mov       r8d,ebp
cmp       [rdi],dil
lea       rcx,[rdi+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       rdi,22B7CB60008
jmp       short M00_L21
M00_L24
 
mov       rdi,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,237063799BA
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF7E6270D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E6271E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,237063799BA
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E627318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF7E5B66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF7E445B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E62CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8DF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E44D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E58E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E58E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8DF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E44D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,22B7CB60008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
sub       rsp,28
movzx     ecx,cx
call      qword ptr [7FFF8DE07370]; Precode of System.Globalization.CharUnicodeInfo.GetCategoryCasingTableOffsetNoBoundsChecks(UInt32)
mov       rcx,[7FFF8DE20750]
cmp       byte ptr [rcx+rax],0
setl      al
movzx     eax,al
add       rsp,28
ret
 
Extern method
System.String.FastAllocateString(Int32)

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,19EAE800428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,1DF3C817648
call      qword ptr [7FFF7E396C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E62CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E61EB18]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FFF7EC1ECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FFF7EC1ECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L13
M00_L10
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FFF7EC1ECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L13
M00_L12
 
inc       r14d
cmp       edi,r14d
jg        short M00_L10
M00_L13
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        short M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L14
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FFF7EC1ECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L16
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FFF7EC1ECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       rdi,rsi
M00_L21
 
mov       [rsp+38],rdi
mov       rsi,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rsi+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      System.String.FastAllocateString(Int32)
mov       rdi,rax
mov       r8d,ebp
cmp       [rdi],dil
lea       rcx,[rdi+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       rdi,1DF3C800008
jmp       short M00_L21
M00_L24
 
mov       rdi,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,65C84A0A6FE0
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF7E6270D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E6271E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,65C84A0A6FE0
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E627318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF7E5B66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF7E445B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E62CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8DF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E44D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E58E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E58E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8DF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E44D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1DF3C800008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
sub       rsp,28
movzx     ecx,cx
call      qword ptr [7FFF8DE07370]; Precode of System.Globalization.CharUnicodeInfo.GetCategoryCasingTableOffsetNoBoundsChecks(UInt32)
mov       rcx,[7FFF8DE20750]
cmp       byte ptr [rcx+rax],0
setl      al
movzx     eax,al
add       rsp,28
ret
 
Extern method
System.String.FastAllocateString(Int32)

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,18F2E800428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,1CFBC897648
call      qword ptr [7FFF7E3A6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E62EB18]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FFF7EC2ECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FFF7EC2ECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L13
M00_L10
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FFF7EC2ECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L13
M00_L12
 
inc       r14d
cmp       edi,r14d
jg        short M00_L10
M00_L13
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        short M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L14
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FFF7EC2ECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L16
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FFF7EC2ECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       rdi,rsi
M00_L21
 
mov       [rsp+38],rdi
mov       rsi,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rsi+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      System.String.FastAllocateString(Int32)
mov       rdi,rax
mov       r8d,ebp
cmp       [rdi],dil
lea       rcx,[rdi+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       rdi,1CFBC880008
jmp       short M00_L21
M00_L24
 
mov       rdi,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,36211EDFAEFF
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF7E6370D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E6371E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,36211EDFAEFF
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E637318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF7E5C66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF7E455B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E63CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8EF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E59E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E59E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8EF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1CFBC880008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
sub       rsp,28
movzx     ecx,cx
call      qword ptr [7FFF8DE07370]; Precode of System.Globalization.CharUnicodeInfo.GetCategoryCasingTableOffsetNoBoundsChecks(UInt32)
mov       rcx,[7FFF8DE20750]
cmp       byte ptr [rcx+rax],0
setl      al
movzx     eax,al
add       rsp,28
ret
 
Extern method
System.String.FastAllocateString(Int32)

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,40
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,1DF74000428
mov       r8,[r8]
mov       [rsp+38],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],1
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,220060D7648
call      qword ptr [7FFF7E3B6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        near ptr M00_L24
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E64CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E63EB18]; System.Text.StringBuilder.ToString()
mov       r13,rax
mov       esi,[r13+8]
test      esi,esi
je        near ptr M00_L25
movzx     ecx,word ptr [r13+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FFF7EC3ECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       edi,[rsi-1]
mov       ecx,edi
movzx     ecx,word ptr [r13+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L25
M00_L08
 
call      qword ptr [7FFF7EC3ECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        near ptr M00_L25
M00_L09
 
xor       ebp,ebp
test      esi,esi
jle       short M00_L13
M00_L10
 
mov       ecx,ebp
movzx     ecx,word ptr [r13+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FFF7EC3ECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L13
M00_L12
 
inc       ebp
cmp       esi,ebp
jg        short M00_L10
M00_L13
 
lea       edi,[rsi-1]
cmp       edi,ebp
jl        short M00_L20
mov       ecx,edi
or        ecx,ebp
jl        short M00_L17
cmp       esi,edi
jle       short M00_L17
M00_L14
 
mov       ecx,edi
movzx     ecx,word ptr [r13+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FFF7EC3ECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L16
 
dec       edi
cmp       edi,ebp
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       edi,esi
jae       near ptr M00_L26
mov       ecx,edi
movzx     ecx,word ptr [r13+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FFF7EC3ECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L19
 
dec       edi
cmp       edi,ebp
jge       short M00_L17
M00_L20
 
mov       r14d,edi
sub       r14d,ebp
inc       r14d
cmp       esi,r14d
jne       short M00_L22
mov       rsi,r13
M00_L21
 
mov       [rsp+30],rsi
mov       r15,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[r15+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [r15+8],rax
add       rsp,40
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L22
 
test      r14d,r14d
je        short M00_L23
mov       ecx,r14d
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
mov       r8d,r14d
cmp       [rsi],sil
lea       rcx,[rsi+0C]
mov       edx,ebp
lea       rdx,[r13+rdx*2+0C]
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       rsi,220060C0008
jmp       short M00_L21
M00_L24
 
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
jmp       near ptr M00_L01
M00_L25
 
mov       rsi,r13
jmp       short M00_L21
M00_L26
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0BBCBABD0F5B8
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF7E6470D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E6471E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0BBCBABD0F5B8
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E647318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF7E5D66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF7E465B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E64CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8FF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E5AE9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E5AE9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8FF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,220060C0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
sub       rsp,28
movzx     ecx,cx
call      qword ptr [7FFF8DE07370]; Precode of System.Globalization.CharUnicodeInfo.GetCategoryCasingTableOffsetNoBoundsChecks(UInt32)
mov       rcx,[7FFF8DE20750]
cmp       byte ptr [rcx+rax],0
setl      al
movzx     eax,al
add       rsp,28
ret
 
Extern method
System.String.FastAllocateString(Int32)

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,40
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,238BE800428
mov       r8,[r8]
mov       [rsp+38],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],1
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,27950787648
call      qword ptr [7FFF7E3C6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        near ptr M00_L24
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E65CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E64EB18]; System.Text.StringBuilder.ToString()
mov       r13,rax
mov       esi,[r13+8]
test      esi,esi
je        near ptr M00_L25
movzx     ecx,word ptr [r13+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FFF7EC4ECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       edi,[rsi-1]
mov       ecx,edi
movzx     ecx,word ptr [r13+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L25
M00_L08
 
call      qword ptr [7FFF7EC4ECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        near ptr M00_L25
M00_L09
 
xor       ebp,ebp
test      esi,esi
jle       short M00_L13
M00_L10
 
mov       ecx,ebp
movzx     ecx,word ptr [r13+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FFF7EC4ECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L13
M00_L12
 
inc       ebp
cmp       esi,ebp
jg        short M00_L10
M00_L13
 
lea       edi,[rsi-1]
cmp       edi,ebp
jl        short M00_L20
mov       ecx,edi
or        ecx,ebp
jl        short M00_L17
cmp       esi,edi
jle       short M00_L17
M00_L14
 
mov       ecx,edi
movzx     ecx,word ptr [r13+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FFF7EC4ECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L16
 
dec       edi
cmp       edi,ebp
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       edi,esi
jae       near ptr M00_L26
mov       ecx,edi
movzx     ecx,word ptr [r13+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FFF8D3A2E48
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FFF7EC4ECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L19
 
dec       edi
cmp       edi,ebp
jge       short M00_L17
M00_L20
 
mov       r14d,edi
sub       r14d,ebp
inc       r14d
cmp       esi,r14d
jne       short M00_L22
mov       rsi,r13
M00_L21
 
mov       [rsp+30],rsi
mov       r15,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[r15+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [r15+8],rax
add       rsp,40
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L22
 
test      r14d,r14d
je        short M00_L23
mov       ecx,r14d
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
mov       r8d,r14d
cmp       [rsi],sil
lea       rcx,[rsi+0C]
mov       edx,ebp
lea       rdx,[r13+rdx*2+0C]
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       rsi,27950770008
jmp       short M00_L21
M00_L24
 
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
jmp       near ptr M00_L01
M00_L25
 
mov       rsi,r13
jmp       short M00_L21
M00_L26
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,14D7444F94FD
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF7E6570D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E6571E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,14D7444F94FD
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E657318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF7E5E66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF7E475B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E65CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E5BE9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E5BE9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,27950770008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
sub       rsp,28
movzx     ecx,cx
call      qword ptr [7FFF8DE07370]; Precode of System.Globalization.CharUnicodeInfo.GetCategoryCasingTableOffsetNoBoundsChecks(UInt32)
mov       rcx,[7FFF8DE20750]
cmp       byte ptr [rcx+rax],0
setl      al
movzx     eax,al
add       rsp,28
ret
 
Extern method
System.String.FastAllocateString(Int32)

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
cmp       dword ptr [rdi+8],0
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,21FAA800428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,26038747628
call      qword ptr [7FFF7E3B6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r14d,[rax+8]
test      r14d,r14d
je        short M00_L04
mov       r8,[rsi+8]
mov       r15d,[rsi+18]
lea       ecx,[r15+r14]
cmp       ecx,[r8+8]
ja        short M00_L03
movsxd    rcx,r15d
lea       rcx,[r8+rcx*2+10]
cmp       r14d,2
jle       short M00_L02
movsxd    r8,r14d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
add       r14d,r15d
mov       [rsi+18],r14d
jmp       short M00_L04
M00_L02
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r14d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
mov       r8d,r14d
call      qword ptr [7FFF7E57D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       [rdi+8],ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E5896D0]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0AADE5065F7C4
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF7E57C000]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E57C108]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0AADE5065F7C4
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E57C240]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF7E536790]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF7E465B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E57DA58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8FF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E6A57E8]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E6A5800]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8FF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,26038730008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,1BC3FC00428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,1FCCDAC7628
call      qword ptr [7FFF7E396C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E62CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E61EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0A2AACD129C70
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF7E6270D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E6271E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0A2AACD129C70
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E627318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF7E5B66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF7E445B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E62CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8DF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E44D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E58E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E58E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8DF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E44D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1FCCDAB0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,1F81A000428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,238A8047628
call      qword ptr [7FFF7E3C6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E65CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E64EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0A8E2B5CBF926
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF7E6570D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E6571E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0A8E2B5CBF926
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E657318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF7E5E66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF7E475B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E65CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E5BE9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E5BE9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,238A8030008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,148E6000428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,18973EB7628
call      qword ptr [7FFF7E3B6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E64CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E63EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,8C355651B64
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF7E6470D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E6471E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,8C355651B64
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E647318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF7E5D66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF7E465B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E64CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8FF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E5AE9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E5AE9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8FF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,18973EA0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,2B383000428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,2F410CD7648
call      qword ptr [7FFF7E386C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E61CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E60EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0F1030179ED40
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF7E6170D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E6171E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0F1030179ED40
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E617318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF7E234000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF7E5A66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF7E435B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E61CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E234000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8CF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E43D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E57E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E57E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E234000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8CF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E43D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2F410CC0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,20653800428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,246E1767648
call      qword ptr [7FFF7E3A6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E62EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0F81F46F4107C
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF7E6370D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E6371E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0F81F46F4107C
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E637318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF7E5C66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF7E455B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E63CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8EF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E59E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E59E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8EF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,246E1750008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,19DDC800428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,1DE6A707648
call      qword ptr [7FFF7E3A6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        short M00_L06
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E62EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L06
 
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
jmp       short M00_L01
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,6A25F2EBB8F4
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF7E6370D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E6371E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,6A25F2EBB8F4
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E637318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF7E5C66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF7E455B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E63CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8EF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E59E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E59E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8EF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1DE6A6F0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,25F2DC00428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,29FBBC67648
call      qword ptr [7FFF7E386C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        short M00_L06
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E61CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E60EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L06
 
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
jmp       short M00_L01
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0BED073C424D6
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF7E6170D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E6171E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0BED073C424D6
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E617318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF7E234000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF7E5A66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF7E435B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E61CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E234000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8CF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E43D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E57E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E57E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E234000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8CF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E43D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,29FBBC50008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,50
vzeroupper
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
vmovdqa   xmmword ptr [rsp+40],xmm4
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,1B931800428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+40],xmm0
mov       [rsp+40],rbp
mov       [rsp+48],rax
lea       r8,[rsp+40]
mov       [rsp+28],r8
mov       dword ptr [rsp+30],2
lea       r8,[rsp+28]
mov       rdx,1F9BF827628
call      qword ptr [7FFF7E3B6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       ebp,[rax+8]
test      ebp,ebp
je        short M00_L04
mov       r8,[rsi+8]
mov       r14d,[rsi+18]
lea       ecx,[r14+rbp]
cmp       ecx,[r8+8]
ja        short M00_L03
movsxd    rcx,r14d
lea       rcx,[r8+rcx*2+10]
cmp       ebp,2
jle       short M00_L02
movsxd    r8,ebp
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
add       ebp,r14d
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       ebp,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
mov       r8d,ebp
call      qword ptr [7FFF7E57D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E5896D0]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,50
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,1C616245F430
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF7E57C000]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E57C108]; System.Text.ValueStringBuilder.ToString()
mov       rcx,1C616245F430
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E57C240]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF7E536790]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF7E465B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E57DA58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8FF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E6A57E8]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E6A5800]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8FF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1F9BF810008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,25F08000428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,25E816B7628
call      qword ptr [7FFF7E3B6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E64CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E63EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0BD15796C7C16
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF7E6470D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E6471E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0BD15796C7C16
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E647318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF7E5D66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L02
test      r8b,18
je        short M02_L01
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L00
 
ret
M02_L01
 
test      r8b,4
je        short M02_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L00
M02_L02
 
cmp       r8,40
ja        short M02_L06
M02_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L05
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L00
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L03
jmp       short M02_L04
M02_L08
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L09
 
jmp       qword ptr [7FFF7E465B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       near ptr M02_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       near ptr M02_L04
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E64CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8FF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E5AE9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E5AE9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8FF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,25E816A0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,26853400428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,2A8E5257628
call      qword ptr [7FFF7E396C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E62CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E61EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,3779BF960217
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF7E6270D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E6271E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,3779BF960217
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E627318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF7E5B66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF7E445B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E62CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8DF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E44D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E58E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E58E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8DF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E44D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2A8E5240008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,2B6DDC00428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,2F76BB97628
call      qword ptr [7FFF7E396C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E62CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E61EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,3A9419C16E1C
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF7E6270D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E6271E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,3A9419C16E1C
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E627318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF7E5B66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF7E445B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E62CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8DF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E44D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E58E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E58E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8DF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E44D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2F76BB80008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,17003400428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,1B095457648
call      qword ptr [7FFF7E3A6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E62EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0B7289F92CA50
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF7E6370D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E6371E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0B7289F92CA50
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E637318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF7E5C66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF7E455B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E63CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8EF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E59E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E59E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8EF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1B095440008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,1DEB3C00428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,21F41A17648
call      qword ptr [7FFF7E3B6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E64CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E63EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0DD5FFFFFCA78
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF7E6470D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E6471E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0DD5FFFFFCA78
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E647318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF7E5D66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF7E465B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E64CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8FF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E5AE9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E5AE9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8FF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,21F41A00008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,1BF18400428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,1FFAA457648
call      qword ptr [7FFF7E3C6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E65CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E64EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,6FE16F0E468
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF7E6570D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E6571E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,6FE16F0E468
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E657318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF7E5E66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF7E475B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E65CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E5BE9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E5BE9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1FFAA440008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L07
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,20F4B000428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,24FD8E27648
call      qword ptr [7FFF7E386C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        short M00_L06
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E61CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E60EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
jmp       short M00_L01
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0EA4458016312
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF7E6170D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E6171E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0EA4458016312
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E617318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF7E234000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF7E5A66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF7E435B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E61CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E234000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8CF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E43D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E57E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E57E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E234000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8CF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E43D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,24FD8E10008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,50
vzeroupper
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
vmovdqa   xmmword ptr [rsp+40],xmm4
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,207DAC00428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+40],xmm0
mov       [rsp+40],rcx
mov       rcx,24868AD9078
mov       [rsp+48],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],2
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,24868AE7628
call      qword ptr [7FFF7E3C6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       ebp,[rax+8]
test      ebp,ebp
je        short M00_L04
mov       r8,[rsi+8]
mov       r14d,[rsi+18]
lea       ecx,[r14+rbp]
cmp       ecx,[r8+8]
ja        short M00_L03
movsxd    rcx,r14d
lea       rcx,[r8+rcx*2+10]
cmp       ebp,2
jle       short M00_L02
movsxd    r8,ebp
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
add       ebp,r14d
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       ebp,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
mov       r8d,ebp
call      qword ptr [7FFF7E58D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E5996D0]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,50
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,1394F1B88441
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF7E58C000]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E58C108]; System.Text.ValueStringBuilder.ToString()
mov       rcx,1394F1B88441
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E58C240]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF7E546790]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF7E475B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E58DA58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E6B57E8]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E6B5800]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,24868AD0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,28C8EC00428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,2CD209A9078
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,2CD209B7628
call      qword ptr [7FFF7E3C6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E65CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E64EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,520CA8E3D857
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF7E6570D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E6571E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,520CA8E3D857
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E657318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF7E5E66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF7E475B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E65CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E5BE9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E5BE9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2CD209A0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,1E201800428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,2228F779078
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,2228F787628
call      qword ptr [7FFF7E3C6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E65CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E64EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0B2F196CE5D39
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF7E6570D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E6571E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0B2F196CE5D39
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E657318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF7E5E66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF7E475B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E65CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E5BE9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E5BE9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2228F770008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,1FFD9000428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,240670A9078
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,240670B7628
call      qword ptr [7FFF7E3A6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E62EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,2D06F09525B2
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF7E6370D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E6371E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,2D06F09525B2
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E637318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF7E5C66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF7E455B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E63CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8EF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E59E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E59E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8EF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,240670A0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,2CE0FC00428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,30E9DCB9078
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,30E9DCC7648
call      qword ptr [7FFF7E3B6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E64CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E63EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0E06E5A2B2AF2
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF7E6470D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E6471E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0E06E5A2B2AF2
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E647318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF7E5D66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF7E465B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E64CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8FF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E5AE9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E5AE9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8FF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,30E9DCB0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,177E4400428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,1B876489078
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,1B876497648
call      qword ptr [7FFF7E396C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E62CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E61EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,8BFE31970494
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF7E6270D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E6271E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,8BFE31970494
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E627318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF7E5B66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF7E445B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E62CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8DF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E44D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E58E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E58E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8DF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E44D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1B876480008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,12D44C00428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,16DD28E9078
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,16DD28F7648
call      qword ptr [7FFF7E3A6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E62EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0A3E649D8E9F1
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF7E6370D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E6371E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0A3E649D8E9F1
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E637318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF7E5C66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF7E455B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E63CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8EF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E59E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E59E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8EF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,16DD28E0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L07
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,2122C000428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,252B9D69078
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,252B9D77648
call      qword ptr [7FFF7E3C6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        short M00_L06
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E65CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E64EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
jmp       short M00_L01
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0D28EDD903FA5
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF7E6570D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E6571E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0D28EDD903FA5
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF7E657318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF7E5E66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF7E475B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E65CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E5BE9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E5BE9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,252B9D60008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FFF7EDF5230]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-58],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
cmp       dword ptr [rbx+8],0
je        near ptr M01_L13
mov       rcx,14CA1408AF8
mov       r14,[rcx]
mov       rcx,[r14+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r14+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r15,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r15],r15b
mov       rcx,r15
xor       edx,edx
call      qword ptr [7FFF7E65C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-50],r15
mov       r13d,[rbx+8]
xor       r12d,r12d
test      r13d,r13d
jle       near ptr M01_L10
mov       r8d,[rbx+8]
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r14d,[r8+8]
test      r14d,r14d
je        short M01_L06
mov       r8,[r15+8]
mov       eax,[r15+18]
mov       [rbp-44],eax
lea       ecx,[rax+r14]
cmp       ecx,[r8+8]
ja        short M01_L05
movsxd    rcx,eax
lea       rcx,[r8+rcx*2+10]
cmp       r14d,2
jg        short M01_L03
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r14d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r14d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       eax,r14d
add       eax,[rbp-44]
mov       [r15+18],eax
jmp       short M01_L06
M01_L05
 
mov       rcx,r15
mov       r8d,r14d
call      qword ptr [7FFF7E65CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r13d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,18D33131C14
mov       rcx,[r15+8]
mov       r8d,[r15+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r15+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r15
call      qword ptr [7FFF7E65C3D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r15
mov       r8d,2
call      qword ptr [7FFF7E65CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r13d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r15
call      qword ptr [7FFF7E64EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-58],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-58]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,18D33130008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r14+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFF7EB2EEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r14,2C
lock dec  dword ptr [r14]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r14+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r15,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,14CA1408AF8
mov       r14,[rcx]
mov       r15,[r14+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r15+18],rcx
jne       short M01_L17
mov       rbx,[rbp-50]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r15+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF7E65C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-50]
mov       rcx,[r15+8]
call      qword ptr [r15+18]
test      eax,eax
mov       rbx,[rbp-50]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r14+20],0
jne       short M01_L19
lea       rcx,[r14+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r14+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r14+28]
jg        short M01_L20
mov       rcx,[r14+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF7EB2EE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r14,2C
lock dec  dword ptr [r14]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FFF7EDF5230]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-58],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
cmp       dword ptr [rbx+8],0
je        near ptr M01_L13
mov       rcx,26BE300AAF0
mov       r14,[rcx]
mov       rcx,[r14+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r14+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r15,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r15],r15b
mov       rcx,r15
xor       edx,edx
call      qword ptr [7FFF7E58D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-50],r15
mov       r13d,[rbx+8]
xor       r12d,r12d
test      r13d,r13d
jle       near ptr M01_L10
mov       r8d,[rbx+8]
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r14d,[r8+8]
test      r14d,r14d
je        short M01_L06
mov       r8,[r15+8]
mov       eax,[r15+18]
mov       [rbp-44],eax
lea       ecx,[rax+r14]
cmp       ecx,[r8+8]
ja        short M01_L05
movsxd    rcx,eax
lea       rcx,[r8+rcx*2+10]
cmp       r14d,2
jg        short M01_L03
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r14d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r14d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       eax,r14d
add       eax,[rbp-44]
mov       [r15+18],eax
jmp       short M01_L06
M01_L05
 
mov       rcx,r15
mov       r8d,r14d
call      qword ptr [7FFF7E58D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r13d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,2AC70E91B34
mov       rcx,[r15+8]
mov       r8d,[r15+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r15+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r15
call      qword ptr [7FFF7E58D2D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r15
mov       r8d,2
call      qword ptr [7FFF7E58D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r13d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r15
call      qword ptr [7FFF7E5996D0]; System.Text.StringBuilder.ToString()
mov       [rbp-58],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-58]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,2AC70E90008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r14+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFF7EB2EF40]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r14,2C
lock dec  dword ptr [r14]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r14+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r15,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,26BE300AAF0
mov       r14,[rcx]
mov       r15,[r14+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r15+18],rcx
jne       short M01_L17
mov       rbx,[rbp-50]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r15+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF7E58D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-50]
mov       rcx,[r15+8]
call      qword ptr [r15+18]
test      eax,eax
mov       rbx,[rbp-50]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r14+20],0
jne       short M01_L19
lea       rcx,[r14+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r14+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r14+28]
jg        short M01_L20
mov       rcx,[r14+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF7EB2EF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r14,2C
lock dec  dword ptr [r14]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FFF7EDF5950]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,1BE1680AAF0
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFF7E58D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFF7E58D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        near ptr M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,1FEA85B1B34
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
add       r8d,2
mov       [r13+18],r8d
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r13
call      qword ptr [7FFF7E58D2D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFF7E58D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFF7E5996D0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,1FEA85B0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFF7EB2F258]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,1BE1680AAF0
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF7E58D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF7EB2F228]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FFF7EDE5C80]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,220B5C02B28
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFF7E57D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFF7E57D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,2613BA01B34
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r13
call      qword ptr [7FFF7E57D2D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFF7E57D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFF7E5896D0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,2613BA00008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFF7EB1EEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,220B5C02B28
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF7E57D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF7EB1EE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FFF7EDC6D78]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,12D6D40AAF0
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFF7E55D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFF7E55D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,16DFF241B34
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r13
call      qword ptr [7FFF7E55D2D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFF7E55D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFF7E5696D0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,16DFF240008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFF7EAFEF40]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,12D6D40AAF0
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF7E55D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF7EAFEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FFF7EDF6B20]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,21FAB408AF8
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFF7E65C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFF7E65CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,2603D231C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r13
call      qword ptr [7FFF7E65C3D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFF7E65CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFF7E64EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,2603D230008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFF7EB2EEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,21FAB408AF8
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF7E65C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF7EB2EE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FFF7EDD6D78]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,1BB1880AAF0
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFF7E56D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFF7E56D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,1FBAA881B34
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r13
call      qword ptr [7FFF7E56D2D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFF7E56D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFF7E5796D0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,1FBAA880008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFF7EB0EEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,1BB1880AAF0
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF7E56D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF7EB0EE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FFF7EDF6D78]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rbx,rdx
mov       rsi,r8
test      rsi,rsi
je        near ptr M01_L13
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,1C2E0808AF8
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFF7E65C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rsi+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFF7E65CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rbx],0
je        short M01_L07
mov       rdx,20372841C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r13
call      qword ptr [7FFF7E65C3D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFF7E65CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFF7E64EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,20372840008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFF7EB2EF40]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,1C2E0808AF8
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF7E65C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF7EB2EF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,2335DDE9078
call      qword ptr [7FFF7EDC5248]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		if (delimiter == null)
		^^^^^^^^^^^^^^^^^^^^^^
			delimiter = ControlChars.CommaSpace;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-58],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rsi,rcx
mov       rdi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
cmp       dword ptr [rbx+8],0
je        near ptr M01_L13
mov       rcx,2335DDE9078
test      rsi,rsi
cmove     rsi,rcx
mov       rcx,1F2CC008AF8
mov       r14,[rcx]
mov       rcx,[r14+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r14+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r15,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r15],r15b
mov       rcx,r15
xor       edx,edx
call      qword ptr [7FFF7E62C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-50],r15
mov       r13d,[rbx+8]
xor       r12d,r12d
test      r13d,r13d
jle       near ptr M01_L10
mov       r8d,[rbx+8]
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r14d,[r8+8]
test      r14d,r14d
je        short M01_L06
mov       r8,[r15+8]
mov       eax,[r15+18]
mov       [rbp-44],eax
lea       ecx,[rax+r14]
cmp       ecx,[r8+8]
ja        short M01_L05
movsxd    rcx,eax
lea       rcx,[r8+rcx*2+10]
cmp       r14d,2
jg        short M01_L03
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r14d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r14d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       eax,r14d
add       eax,[rbp-44]
mov       [r15+18],eax
jmp       short M01_L06
M01_L05
 
mov       rcx,r15
mov       r8d,r14d
call      qword ptr [7FFF7E62CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r13d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rdi],0
je        short M01_L07
mov       rdx,2335DDE1C14
mov       rcx,[r15+8]
mov       r8d,[r15+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r15+18],eax
jmp       short M01_L09
M01_L07
 
mov       rcx,r15
mov       rdx,rsi
call      qword ptr [7FFF7E62C2A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r15
mov       r8d,2
call      qword ptr [7FFF7E62CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r13d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r15
call      qword ptr [7FFF7E61EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-58],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-58]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,2335DDE0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r14+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFF7EAFEEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r14,2C
lock dec  dword ptr [r14]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r14+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r15,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,1F2CC008AF8
mov       r14,[rcx]
mov       r15,[r14+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r15+18],rcx
jne       short M01_L17
mov       rbx,[rbp-50]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r15+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF7E62C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-50]
mov       rcx,[r15+8]
call      qword ptr [r15+18]
test      eax,eax
mov       rbx,[rbp-50]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r14+20],0
jne       short M01_L19
lea       rcx,[r14+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r14+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r14+28]
jg        short M01_L20
mov       rcx,[r14+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF7EAFEE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r14,2C
lock dec  dword ptr [r14]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,24578A79078
call      qword ptr [7FFF7EDF5248]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		if (delimiter == null)
		^^^^^^^^^^^^^^^^^^^^^^
			delimiter = ControlChars.CommaSpace;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-58],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
cmp       dword ptr [rbx+8],0
je        near ptr M01_L13
mov       rcx,24578A79078
test      rdi,rdi
cmove     rdi,rcx
mov       rcx,204EEC02B28
mov       r14,[rcx]
mov       rcx,[r14+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r14+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r15,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r15],r15b
mov       rcx,r15
xor       edx,edx
call      qword ptr [7FFF7E58D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-50],r15
mov       r13d,[rbx+8]
xor       r12d,r12d
test      r13d,r13d
jle       near ptr M01_L10
mov       r8d,[rbx+8]
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r14d,[r8+8]
test      r14d,r14d
je        short M01_L06
mov       r8,[r15+8]
mov       eax,[r15+18]
mov       [rbp-44],eax
lea       ecx,[rax+r14]
cmp       ecx,[r8+8]
ja        short M01_L05
movsxd    rcx,eax
lea       rcx,[r8+rcx*2+10]
cmp       r14d,2
jg        short M01_L03
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r14d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r14d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       eax,r14d
add       eax,[rbp-44]
mov       [r15+18],eax
jmp       short M01_L06
M01_L05
 
mov       rcx,r15
mov       r8d,r14d
call      qword ptr [7FFF7E58D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r13d
sub       ecx,1
jo        near ptr M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,24578A71B34
mov       rcx,[r15+8]
mov       r8d,[r15+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
add       r8d,2
mov       [r15+18],r8d
jmp       short M01_L09
M01_L07
 
mov       rcx,r15
mov       rdx,rdi
call      qword ptr [7FFF7E58D1A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r15
mov       r8d,2
call      qword ptr [7FFF7E58D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r13d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r15
call      qword ptr [7FFF7E5996D0]; System.Text.StringBuilder.ToString()
mov       [rbp-58],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-58]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,24578A70008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r14+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFF7EB2EEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r14,2C
lock dec  dword ptr [r14]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r14+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r15,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,204EEC02B28
mov       r14,[rcx]
mov       r15,[r14+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r15+18],rcx
jne       short M01_L17
mov       rbx,[rbp-50]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r15+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF7E58D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-50]
mov       rcx,[r15+8]
call      qword ptr [r15+18]
test      eax,eax
mov       rbx,[rbp-50]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r14+20],0
jne       short M01_L19
lea       rcx,[r14+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r14+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r14+28]
jg        short M01_L20
mov       rcx,[r14+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF7EB2EE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r14,2C
lock dec  dword ptr [r14]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,20D2A639078
call      qword ptr [7FFF7EDF5968]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		if (delimiter == null)
		^^^^^^^^^^^^^^^^^^^^^^
			delimiter = ControlChars.CommaSpace;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,20D2A639078
test      rdi,rdi
cmove     rdi,rcx
mov       rcx,1CC98808AF8
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFF7E65C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFF7E65CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        near ptr M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,20D2A631C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
add       r8d,2
mov       [r13+18],r8d
jmp       short M01_L09
M01_L07
 
mov       rcx,r13
mov       rdx,rdi
call      qword ptr [7FFF7E65C2A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFF7E65CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFF7E64EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,20D2A630008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFF7EB2EEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,1CC98808AF8
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF7E65C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF7EB2EE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,20749C49078
call      qword ptr [7FFF7EDF5968]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		if (delimiter == null)
		^^^^^^^^^^^^^^^^^^^^^^
			delimiter = ControlChars.CommaSpace;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,20749C49078
test      rdi,rdi
cmove     rdi,rcx
mov       rcx,1C6BBC06B00
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFF7E65C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFF7E65CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,20749C41C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
mov       rcx,r13
mov       rdx,rdi
call      qword ptr [7FFF7E65C2A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFF7E65CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFF7E64EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,20749C40008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFF7EB2EF40]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,1C6BBC06B00
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF7E65C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF7EB2EF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,1ED5C9A9078
call      qword ptr [7FFF7EDD6D90]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		if (delimiter == null)
		^^^^^^^^^^^^^^^^^^^^^^
			delimiter = ControlChars.CommaSpace;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,1ED5C9A9078
test      rdi,rdi
cmove     rdi,rcx
mov       rcx,1ACCAC08AF8
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFF7E63C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,1ED5C9A1C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
mov       rcx,r13
mov       rdx,rdi
call      qword ptr [7FFF7E63C2A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFF7E62EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,1ED5C9A0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFF7EB0EF40]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,1ACCAC08AF8
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF7E63C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF7EB0EF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,1C3F8AE9078
call      qword ptr [7FFF7EDE6D90]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		if (delimiter == null)
		^^^^^^^^^^^^^^^^^^^^^^
			delimiter = ControlChars.CommaSpace;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,1C3F8AE9078
test      rdi,rdi
cmove     rdi,rcx
mov       rcx,18366C08AF8
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFF7E64C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFF7E64CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,1C3F8AE1C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
mov       rcx,r13
mov       rdx,rdi
call      qword ptr [7FFF7E64C2A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFF7E64CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFF7E63EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,1C3F8AE0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFF7EB1EEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,18366C08AF8
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF7E64C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF7EB1EE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,24A5BE39078
call      qword ptr [7FFF7EDD6D90]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		if (delimiter == null)
		^^^^^^^^^^^^^^^^^^^^^^
			delimiter = ControlChars.CommaSpace;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,24A5BE39078
test      rdi,rdi
cmove     rdi,rcx
mov       rcx,209CE006B00
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFF7E63C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,24A5BE31C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
mov       rcx,r13
mov       rdx,rdi
call      qword ptr [7FFF7E63C2A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFF7E62EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,24A5BE30008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFF7EB0EEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,209CE006B00
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF7E63C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF7EB0EE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,295CB8B9078
call      qword ptr [7FFF7EDD6B38]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		if (delimiter == null)
		^^^^^^^^^^^^^^^^^^^^^^
			delimiter = ControlChars.CommaSpace;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,295CB8B9078
test      rdi,rdi
cmove     rdi,rcx
mov       rcx,25539C08AF8
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFF7E63C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,295CB8B1C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
mov       rcx,r13
mov       rdx,rdi
call      qword ptr [7FFF7E63C2A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFF7E62EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,295CB8B0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFF7EB0EF40]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,25539C08AF8
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF7E63C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF7EB0EF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
mov       r9d,1
call      qword ptr [7FFF7EDE5200]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+90]
test      rbp,rbp
je        near ptr M01_L20
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L21
mov       rcx,[rbp+10]
test      rcx,rcx
je        short M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L22
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L05
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFF7E64CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L14
jmp       short M01_L06
M01_L05
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L06
 
test      esi,esi
je        short M01_L08
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[rsi+r13]
cmp       ecx,[r8+8]
ja        near ptr M01_L15
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L16
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        near ptr M01_L18
M01_L07
 
add       r13d,esi
mov       [rbx+18],r13d
M01_L08
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L13
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L09
 
test      rcx,rcx
je        short M01_L13
lea       rdx,[rcx+0C]
mov       r13d,[rcx+8]
test      r13d,r13d
je        short M01_L13
mov       r8,[rbx+8]
mov       r12d,[rbx+18]
lea       ecx,[r12+r13]
cmp       ecx,[r8+8]
ja        short M01_L12
movsxd    rcx,r12d
lea       rcx,[r8+rcx*2+10]
cmp       r13d,2
jg        short M01_L17
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r13d,2
je        short M01_L11
M01_L10
 
add       r13d,r12d
mov       [rbx+18],r13d
jmp       short M01_L13
M01_L11
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L10
M01_L12
 
mov       rcx,rbx
mov       r8d,r13d
call      qword ptr [7FFF7E64CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L13
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L06
M01_L14
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L15
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFF7E64CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L08
M01_L16
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L07
M01_L17
 
movsxd    r8,r13d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L10
M01_L18
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       near ptr M01_L07
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L09
M01_L20
 
mov       ecx,6
call      qword ptr [7FFF7E5AED00]
int       3
M01_L21
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L22
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
mov       r9d,1
call      qword ptr [7FFF7EDF5200]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+90]
test      rbp,rbp
je        near ptr M01_L17
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L18
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M01_L02
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L02
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFF7E65CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L13
M01_L05
 
test      esi,esi
je        short M01_L07
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[rsi+r13]
cmp       ecx,[r8+8]
ja        near ptr M01_L14
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jle       near ptr M01_L15
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L06
 
add       r13d,esi
mov       [rbx+18],r13d
M01_L07
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        near ptr M01_L12
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L16
M01_L08
 
test      rcx,rcx
je        short M01_L12
lea       rdx,[rcx+0C]
mov       r13d,[rcx+8]
test      r13d,r13d
je        short M01_L12
mov       r8,[rbx+8]
mov       r12d,[rbx+18]
lea       ecx,[r12+r13]
cmp       ecx,[r8+8]
ja        short M01_L11
movsxd    rcx,r12d
lea       rcx,[r8+rcx*2+10]
cmp       r13d,2
jle       short M01_L10
movsxd    r8,r13d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L09
 
add       r13d,r12d
mov       [rbx+18],r13d
jmp       short M01_L12
M01_L10
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r13d,2
jne       short M01_L09
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L09
M01_L11
 
mov       rcx,rbx
mov       r8d,r13d
call      qword ptr [7FFF7E65CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L12
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
M01_L13
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L14
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFF7E65CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L07
M01_L15
 
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       near ptr M01_L06
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       near ptr M01_L06
M01_L16
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L08
M01_L17
 
mov       ecx,6
call      qword ptr [7FFF7E5BED00]
int       3
M01_L18
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
mov       r9d,1
call      qword ptr [7FFF7EDE5920]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L20
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L21
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L05
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L22
M01_L00
 
test      rcx,rcx
je        short M01_L05
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L05
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L04
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L05
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFF7E64CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L05
M01_L04
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L05
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L14
M01_L06
 
test      esi,esi
je        short M01_L08
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        near ptr M01_L17
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L15
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        near ptr M01_L18
M01_L07
 
mov       [rbx+18],r13d
M01_L08
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L13
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L09
 
test      rcx,rcx
je        short M01_L13
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L13
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L12
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L16
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        short M01_L11
M01_L10
 
mov       [rbx+18],r13d
jmp       short M01_L13
M01_L11
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L10
M01_L12
 
mov       rcx,rbx
call      qword ptr [7FFF7E64CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L13
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L06
M01_L14
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L15
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L07
M01_L16
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L10
M01_L17
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFF7E64CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L08
M01_L18
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       near ptr M01_L07
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L09
M01_L20
 
mov       ecx,6
call      qword ptr [7FFF7E5AED00]
int       3
M01_L21
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L22
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
mov       r9d,1
call      qword ptr [7FFF7EDB5920]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+90]
test      rbp,rbp
je        near ptr M01_L21
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L22
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L05
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L23
M01_L00
 
test      rcx,rcx
je        short M01_L05
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L05
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L04
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L05
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFF7E61CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L05
M01_L04
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L05
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L16
M01_L06
 
test      esi,esi
je        near ptr M01_L13
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        short M01_L12
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L10
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        short M01_L08
M01_L07
 
mov       [rbx+18],r13d
jmp       short M01_L13
M01_L08
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       short M01_L07
M01_L09
 
test      rcx,rcx
je        short M01_L15
jmp       short M01_L11
M01_L10
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L07
M01_L11
 
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L15
mov       r13,[rbx+8]
mov       r12d,[rbx+18]
lea       eax,[r12+r8]
mov       [rsp+24],eax
cmp       eax,[r13+8]
ja        short M01_L14
jmp       short M01_L17
M01_L12
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFF7E61CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L13
 
mov       eax,r15d
mov       rcx,[rbp+rax*8+10]
test      rcx,rcx
je        short M01_L15
mov       rax,offset MT_System.String
cmp       [rcx],rax
jne       near ptr M01_L24
jmp       short M01_L09
M01_L14
 
mov       rcx,rbx
call      qword ptr [7FFF7E61CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L15
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L06
M01_L16
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L17
 
movsxd    rcx,r12d
lea       rcx,[r13+rcx*2+10]
cmp       r8d,2
jg        short M01_L19
movzx     r10d,word ptr [rdx]
mov       [rcx],r10w
cmp       r8d,2
je        short M01_L20
M01_L18
 
mov       eax,[rsp+24]
mov       [rbx+18],eax
jmp       short M01_L15
M01_L19
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L18
M01_L20
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L18
M01_L21
 
mov       ecx,6
call      qword ptr [7FFF7E57ED00]
int       3
M01_L22
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L23
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L24
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L09
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
mov       r9d,1
call      qword ptr [7FFF7EDE6AF0]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+90]
test      rbp,rbp
je        near ptr M01_L21
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L22
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L07
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L23
M01_L00
 
test      rcx,rcx
je        near ptr M01_L07
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        near ptr M01_L07
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L06
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L04
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L07
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
test      rcx,rcx
je        near ptr M01_L12
jmp       short M01_L05
M01_L04
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L05
 
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        near ptr M01_L12
mov       r13,[rbx+8]
mov       r12d,[rbx+18]
lea       eax,[r12+r8]
mov       [rsp+24],eax
cmp       eax,[r13+8]
ja        short M01_L11
jmp       near ptr M01_L16
M01_L06
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFF7E64CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L07
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L19
M01_L08
 
test      esi,esi
je        short M01_L15
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        short M01_L14
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L13
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        short M01_L10
M01_L09
 
mov       [rbx+18],r13d
jmp       short M01_L15
M01_L10
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       short M01_L09
M01_L11
 
mov       rcx,rbx
call      qword ptr [7FFF7E64CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L12
 
inc       r15d
cmp       r14d,r15d
jg        short M01_L08
jmp       short M01_L19
M01_L13
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L09
M01_L14
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFF7E64CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L15
 
mov       eax,r15d
mov       rcx,[rbp+rax*8+10]
test      rcx,rcx
je        short M01_L12
mov       rax,offset MT_System.String
cmp       [rcx],rax
jne       near ptr M01_L24
jmp       near ptr M01_L03
M01_L16
 
movsxd    rcx,r12d
lea       rcx,[r13+rcx*2+10]
cmp       r8d,2
jg        short M01_L18
movzx     r10d,word ptr [rdx]
mov       [rcx],r10w
cmp       r8d,2
je        short M01_L20
M01_L17
 
mov       eax,[rsp+24]
mov       [rbx+18],eax
jmp       short M01_L12
M01_L18
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L17
M01_L19
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L20
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L17
M01_L21
 
mov       ecx,6
call      qword ptr [7FFF7E5AED00]
int       3
M01_L22
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L23
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L24
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L03
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
mov       r9d,1
call      qword ptr [7FFF7EDC6AF0]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L20
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L21
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L05
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L22
M01_L00
 
test      rcx,rcx
je        short M01_L05
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L05
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L04
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L05
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFF7E62CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L05
M01_L04
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L05
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L14
M01_L06
 
test      esi,esi
je        short M01_L08
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        near ptr M01_L17
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L15
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        near ptr M01_L18
M01_L07
 
mov       [rbx+18],r13d
M01_L08
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L13
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L09
 
test      rcx,rcx
je        short M01_L13
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L13
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L12
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L16
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        short M01_L11
M01_L10
 
mov       [rbx+18],r13d
jmp       short M01_L13
M01_L11
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L10
M01_L12
 
mov       rcx,rbx
call      qword ptr [7FFF7E62CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L13
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L06
M01_L14
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L15
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L07
M01_L16
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L10
M01_L17
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFF7E62CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L08
M01_L18
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       near ptr M01_L07
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L09
M01_L20
 
mov       ecx,6
call      qword ptr [7FFF7E58ED00]
int       3
M01_L21
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L22
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
mov       r9d,1
call      qword ptr [7FFF7EDE6D48]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rbp,r8
mov       esi,r9d
mov       rdi,[rsp+80]
test      rdi,rdi
je        near ptr M01_L20
mov       r14d,[rdi+8]
test      r14d,r14d
je        near ptr M01_L21
mov       rcx,[rdi+10]
test      rcx,rcx
je        near ptr M01_L07
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L22
M01_L00
 
test      rcx,rcx
je        near ptr M01_L07
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L07
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L06
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L05
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L07
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
call      qword ptr [7FFF7E64CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
inc       r15d
cmp       r14d,r15d
jg        short M01_L08
jmp       near ptr M01_L18
M01_L05
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L06
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFF7E64CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L07
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L18
M01_L08
 
test      esi,esi
je        short M01_L12
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        short M01_L11
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L13
movzx     r8d,word ptr [rbp]
mov       [rcx],r8w
cmp       esi,2
je        short M01_L10
M01_L09
 
mov       [rbx+18],r13d
jmp       short M01_L12
M01_L10
 
movzx     r8d,word ptr [rbp+2]
mov       [rcx+2],r8w
jmp       short M01_L09
M01_L11
 
mov       rcx,rbx
mov       rdx,rbp
mov       r8d,esi
call      qword ptr [7FFF7E64CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L12
 
mov       eax,r15d
mov       rcx,[rdi+rax*8+10]
test      rcx,rcx
je        near ptr M01_L04
jmp       short M01_L14
M01_L13
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rbp
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L09
M01_L14
 
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L23
M01_L15
 
test      rcx,rcx
je        near ptr M01_L04
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        near ptr M01_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        near ptr M01_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L17
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        short M01_L19
M01_L16
 
mov       [rbx+18],r13d
jmp       near ptr M01_L04
M01_L17
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L16
M01_L18
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L19
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L16
M01_L20
 
mov       ecx,6
call      qword ptr [7FFF7E5AED00]
int       3
M01_L21
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L22
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L23
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L15
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
mov       r9d,1
call      qword ptr [7FFF7EDF7A98]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rbp,r8
mov       esi,r9d
mov       rdi,[rsp+80]
test      rdi,rdi
je        near ptr M01_L22
mov       r14d,[rdi+8]
test      r14d,r14d
je        near ptr M01_L23
mov       rcx,[rdi+10]
test      rcx,rcx
jne       short M01_L06
M01_L00
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L17
M01_L01
 
test      esi,esi
je        near ptr M01_L10
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        near ptr M01_L09
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L15
movzx     r8d,word ptr [rbp]
mov       [rcx],r8w
cmp       esi,2
je        short M01_L03
M01_L02
 
mov       [rbx+18],r13d
jmp       near ptr M01_L10
M01_L03
 
movzx     r8d,word ptr [rbp+2]
mov       [rcx+2],r8w
jmp       short M01_L02
M01_L04
 
mov       rcx,rbx
call      qword ptr [7FFF7E65CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L05
 
inc       r15d
cmp       r14d,r15d
jg        short M01_L01
jmp       near ptr M01_L17
M01_L06
 
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L24
M01_L07
 
test      rcx,rcx
je        near ptr M01_L00
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        near ptr M01_L00
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        near ptr M01_L19
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        near ptr M01_L18
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L11
M01_L08
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       near ptr M01_L00
M01_L09
 
mov       rcx,rbx
mov       rdx,rbp
mov       r8d,esi
call      qword ptr [7FFF7E65CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L10
 
mov       eax,r15d
mov       rcx,[rdi+rax*8+10]
test      rcx,rcx
je        near ptr M01_L05
jmp       short M01_L12
M01_L11
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L08
M01_L12
 
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L21
M01_L13
 
test      rcx,rcx
je        near ptr M01_L05
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        near ptr M01_L05
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        near ptr M01_L04
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L16
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        short M01_L20
M01_L14
 
mov       [rbx+18],r13d
jmp       near ptr M01_L05
M01_L15
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rbp
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L02
M01_L16
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L14
M01_L17
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L08
M01_L19
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFF7E65CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L00
M01_L20
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L14
M01_L21
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L13
M01_L22
 
mov       ecx,6
call      qword ptr [7FFF7E5BED00]
int       3
M01_L23
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L24
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L07
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,26120EC9084
mov       r9d,2
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
call      qword ptr [7FFF7EDD5200]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+90]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L02
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L02
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L13
M01_L05
 
test      esi,esi
je        short M01_L07
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[rsi+r13]
cmp       ecx,[r8+8]
ja        near ptr M01_L14
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L10
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L06
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
M01_L06
 
add       r13d,esi
mov       [rbx+18],r13d
M01_L07
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        near ptr M01_L12
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L08
 
test      rcx,rcx
je        short M01_L12
lea       rdx,[rcx+0C]
mov       r13d,[rcx+8]
test      r13d,r13d
je        short M01_L12
mov       r8,[rbx+8]
mov       r12d,[rbx+18]
lea       ecx,[r12+r13]
cmp       ecx,[r8+8]
ja        short M01_L11
movsxd    rcx,r12d
lea       rcx,[r8+rcx*2+10]
cmp       r13d,2
jg        short M01_L15
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r13d,2
jne       short M01_L09
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L09
 
add       r13d,r12d
mov       [rbx+18],r13d
jmp       short M01_L12
M01_L10
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L06
M01_L11
 
mov       rcx,rbx
mov       r8d,r13d
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L12
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
M01_L13
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L14
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L07
M01_L15
 
movsxd    r8,r13d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L09
M01_L16
 
mov       ecx,6
call      qword ptr [7FFF7E59ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L08
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,25ABD379084
mov       r9d,2
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
call      qword ptr [7FFF7EDC5200]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+90]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L02
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L02
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFF7E62CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L13
M01_L05
 
test      esi,esi
je        short M01_L07
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[rsi+r13]
cmp       ecx,[r8+8]
ja        near ptr M01_L14
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L10
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L06
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
M01_L06
 
add       r13d,esi
mov       [rbx+18],r13d
M01_L07
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        near ptr M01_L12
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L08
 
test      rcx,rcx
je        short M01_L12
lea       rdx,[rcx+0C]
mov       r13d,[rcx+8]
test      r13d,r13d
je        short M01_L12
mov       r8,[rbx+8]
mov       r12d,[rbx+18]
lea       ecx,[r12+r13]
cmp       ecx,[r8+8]
ja        short M01_L11
movsxd    rcx,r12d
lea       rcx,[r8+rcx*2+10]
cmp       r13d,2
jg        short M01_L15
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r13d,2
jne       short M01_L09
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L09
 
add       r13d,r12d
mov       [rbx+18],r13d
jmp       short M01_L12
M01_L10
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L06
M01_L11
 
mov       rcx,rbx
mov       r8d,r13d
call      qword ptr [7FFF7E62CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L12
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
M01_L13
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L14
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFF7E62CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L07
M01_L15
 
movsxd    r8,r13d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L09
M01_L16
 
mov       ecx,6
call      qword ptr [7FFF7E58ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L08
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,1C6B46F9084
mov       r9d,2
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
call      qword ptr [7FFF7EDC5920]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L01
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L02
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L02
M01_L01
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L02
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFF7E62CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L15
M01_L05
 
test      esi,esi
je        short M01_L09
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        short M01_L08
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L06
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L07
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       short M01_L07
M01_L06
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L07
 
mov       [rbx+18],r13d
jmp       short M01_L09
M01_L08
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFF7E62CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L14
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L10
 
test      rcx,rcx
je        short M01_L14
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L14
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L13
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L11
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L12
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L12
M01_L11
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L12
 
mov       [rbx+18],r13d
jmp       short M01_L14
M01_L13
 
mov       rcx,rbx
call      qword ptr [7FFF7E62CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L14
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
M01_L15
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L16
 
mov       ecx,6
call      qword ptr [7FFF7E58ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L10
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,26089BF9084
mov       r9d,2
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
call      qword ptr [7FFF7EDD5920]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L01
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L02
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L02
M01_L01
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L02
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L15
M01_L05
 
test      esi,esi
je        short M01_L09
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        short M01_L08
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L06
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L07
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       short M01_L07
M01_L06
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L07
 
mov       [rbx+18],r13d
jmp       short M01_L09
M01_L08
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L14
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L10
 
test      rcx,rcx
je        short M01_L14
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L14
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L13
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L11
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L12
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L12
M01_L11
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L12
 
mov       [rbx+18],r13d
jmp       short M01_L14
M01_L13
 
mov       rcx,rbx
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L14
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
M01_L15
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L16
 
mov       ecx,6
call      qword ptr [7FFF7E59ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L10
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,27EC24F9084
mov       r9d,2
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
call      qword ptr [7FFF7EDC6D48]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L01
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L02
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L02
M01_L01
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L02
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFF7E62CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L15
M01_L05
 
test      esi,esi
je        short M01_L09
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        short M01_L08
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L06
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L07
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       short M01_L07
M01_L06
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L07
 
mov       [rbx+18],r13d
jmp       short M01_L09
M01_L08
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFF7E62CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L14
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L10
 
test      rcx,rcx
je        short M01_L14
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L14
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L13
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L11
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L12
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L12
M01_L11
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L12
 
mov       [rbx+18],r13d
jmp       short M01_L14
M01_L13
 
mov       rcx,rbx
call      qword ptr [7FFF7E62CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L14
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
M01_L15
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L16
 
mov       ecx,6
call      qword ptr [7FFF7E58ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L10
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,2056C689084
mov       r9d,2
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
call      qword ptr [7FFF7EDE6D48]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L02
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L02
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFF7E64CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L15
M01_L05
 
test      esi,esi
je        short M01_L07
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        near ptr M01_L13
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L10
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L06
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
M01_L06
 
mov       [rbx+18],r13d
M01_L07
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        near ptr M01_L12
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L08
 
test      rcx,rcx
je        short M01_L12
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L12
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L11
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L14
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L09
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L09
 
mov       [rbx+18],r13d
jmp       short M01_L12
M01_L10
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L06
M01_L11
 
mov       rcx,rbx
call      qword ptr [7FFF7E64CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L12
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
jmp       short M01_L15
M01_L13
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFF7E64CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L07
M01_L14
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L09
M01_L15
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L16
 
mov       ecx,6
call      qword ptr [7FFF7E5AED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L08
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,253E5469084
mov       r9d,2
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
call      qword ptr [7FFF7EDF6AF0]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L02
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L02
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFF7E65CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L15
M01_L05
 
test      esi,esi
je        short M01_L07
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        near ptr M01_L13
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L10
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L06
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
M01_L06
 
mov       [rbx+18],r13d
M01_L07
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        near ptr M01_L12
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L08
 
test      rcx,rcx
je        short M01_L12
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L12
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L11
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L14
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L09
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L09
 
mov       [rbx+18],r13d
jmp       short M01_L12
M01_L10
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L06
M01_L11
 
mov       rcx,rbx
call      qword ptr [7FFF7E65CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L12
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
jmp       short M01_L15
M01_L13
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFF7E65CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L07
M01_L14
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L09
M01_L15
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L16
 
mov       ecx,6
call      qword ptr [7FFF7E5BED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L08
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,2532C5C9084
mov       r9d,2
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
call      qword ptr [7FFF7EDD6D48]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L02
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L02
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L15
M01_L05
 
test      esi,esi
je        short M01_L07
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        near ptr M01_L13
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L10
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L06
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
M01_L06
 
mov       [rbx+18],r13d
M01_L07
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        near ptr M01_L12
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L08
 
test      rcx,rcx
je        short M01_L12
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L12
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L11
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L14
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L09
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L09
 
mov       [rbx+18],r13d
jmp       short M01_L12
M01_L10
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L06
M01_L11
 
mov       rcx,rbx
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L12
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
jmp       short M01_L15
M01_L13
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L07
M01_L14
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L09
M01_L15
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L16
 
mov       ecx,6
call      qword ptr [7FFF7E59ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L08
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E62EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M01_L00
 
ret
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M01_L00
M01_L02
 
test      r8,r8
je        short M01_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M01_L06
jmp       short M01_L00
M01_L03
 
cmp       r8,40
ja        short M01_L07
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L11
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L00
M01_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M01_L00
M01_L07
 
cmp       r8,800
ja        short M01_L10
mov       r9,r8
shr       r9,6
M01_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L08
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L09
 
cmp       rcx,rdx
je        near ptr M01_L00
M01_L10
 
jmp       qword ptr [7FFF7E455B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E63CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8EF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FFF7E59E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FFF7E59E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8EF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,2E63AB90008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E64CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E63EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M01_L00
 
ret
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M01_L00
M01_L02
 
test      r8,r8
je        short M01_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M01_L06
jmp       short M01_L00
M01_L03
 
cmp       r8,40
ja        short M01_L07
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L11
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L00
M01_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M01_L00
M01_L07
 
cmp       r8,800
ja        short M01_L10
mov       r9,r8
shr       r9,6
M01_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L08
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L09
 
cmp       rcx,rdx
je        near ptr M01_L00
M01_L10
 
jmp       qword ptr [7FFF7E465B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E64CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8FF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FFF7E5AE9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FFF7E5AE9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8FF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,1D3BDDC0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E64CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E63EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M01_L00
 
ret
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M01_L00
M01_L02
 
test      r8,r8
je        short M01_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M01_L06
jmp       short M01_L00
M01_L03
 
cmp       r8,40
ja        short M01_L07
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L11
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L00
M01_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M01_L00
M01_L07
 
cmp       r8,800
ja        short M01_L10
mov       r9,r8
shr       r9,6
M01_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L08
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L09
 
cmp       rcx,rdx
je        near ptr M01_L00
M01_L10
 
jmp       qword ptr [7FFF7E465B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E64CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8FF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FFF7E5AE9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FFF7E5AE9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8FF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,29475040008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E61CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E60EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M01_L00
 
ret
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M01_L00
M01_L02
 
test      r8,r8
je        short M01_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M01_L06
jmp       short M01_L00
M01_L03
 
cmp       r8,40
ja        short M01_L07
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L11
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L00
M01_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M01_L00
M01_L07
 
cmp       r8,800
ja        short M01_L10
mov       r9,r8
shr       r9,6
M01_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L08
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L09
 
cmp       rcx,rdx
je        near ptr M01_L00
M01_L10
 
jmp       qword ptr [7FFF7E435B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E61CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E234000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8CF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E43D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FFF7E57E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FFF7E57E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E234000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8CF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E43D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,1B0C23E0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E65CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E64EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M01_L00
 
ret
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M01_L00
M01_L02
 
test      r8,r8
je        short M01_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M01_L06
jmp       short M01_L00
M01_L03
 
cmp       r8,40
ja        short M01_L07
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L11
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L00
M01_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M01_L00
M01_L07
 
cmp       r8,800
ja        short M01_L10
mov       r9,r8
shr       r9,6
M01_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L08
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L09
 
cmp       rcx,rdx
je        near ptr M01_L00
M01_L10
 
jmp       qword ptr [7FFF7E475B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E65CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FFF7E5BE9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FFF7E5BE9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,29C3CCE0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E62EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M01_L00
 
ret
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M01_L00
M01_L02
 
test      r8,r8
je        short M01_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M01_L06
jmp       short M01_L00
M01_L03
 
cmp       r8,40
ja        short M01_L07
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L11
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L00
M01_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M01_L00
M01_L07
 
cmp       r8,800
ja        short M01_L10
mov       r9,r8
shr       r9,6
M01_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L08
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L09
 
cmp       rcx,rdx
je        near ptr M01_L00
M01_L10
 
jmp       qword ptr [7FFF7E455B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E63CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8EF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FFF7E59E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FFF7E59E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8EF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,24476E90008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E64CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E63EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M01_L00
 
ret
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M01_L00
M01_L02
 
test      r8,r8
je        short M01_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M01_L06
jmp       short M01_L00
M01_L03
 
cmp       r8,40
ja        short M01_L07
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L11
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L00
M01_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M01_L00
M01_L07
 
cmp       r8,800
ja        short M01_L10
mov       r9,r8
shr       r9,6
M01_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L08
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L09
 
cmp       rcx,rdx
je        near ptr M01_L00
M01_L10
 
jmp       qword ptr [7FFF7E465B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E64CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8FF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FFF7E5AE9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FFF7E5AE9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8FF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,17A811D0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF7E62CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF7E61EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M01_L00
 
ret
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M01_L00
M01_L02
 
test      r8,r8
je        short M01_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M01_L06
jmp       short M01_L00
M01_L03
 
cmp       r8,40
ja        short M01_L07
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L11
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L00
M01_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M01_L00
M01_L07
 
cmp       r8,800
ja        short M01_L10
mov       r9,r8
shr       r9,6
M01_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L08
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L09
 
cmp       rcx,rdx
je        near ptr M01_L00
M01_L10
 
jmp       qword ptr [7FFF7E445B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E62CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8DF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E44D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FFF7E58E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FFF7E58E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8DF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E44D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,264798A0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,1CD5C808160
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FFF7EB1E518]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FFF7EDD52A8]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FFF7EB0E9D0]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FFF7E3A41F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FFF7EB0EF40]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M02_L03
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
M02_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M02_L00
M02_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L05
 
mov       rcx,rbx
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L02
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,1CD5C808AF8
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-30]
M03_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF7E63C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L07
lea       rdx,[r8+0C]
mov       r14d,[r8+8]
test      r14d,r14d
je        short M03_L07
mov       r8,[rdi+8]
mov       r15d,[rdi+18]
lea       ecx,[r15+r14]
cmp       ecx,[r8+8]
ja        short M03_L06
movsxd    rcx,r15d
lea       rcx,[r8+rcx*2+10]
cmp       r14d,2
jle       short M03_L05
movsxd    r8,r14d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
add       r14d,r15d
mov       [rdi+18],r14d
jmp       short M03_L07
M03_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L05
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r14d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L06
 
mov       rcx,rdi
mov       r8d,r14d
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M03_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M03_L02
jmp       short M03_L09
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FFF7E62EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M03_L10
 
mov       rax,20DEE5B0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFF7EB0EF40]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,1CD5C808AF8
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-38]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF7E63C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-38]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFF7EB0EF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FFF7E63C1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FFF7EB0EF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,1A267806168
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FFF7EB0E518]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FFF7EDC52A8]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FFF7EAFE958]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FFF7E3941F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FFF7EAFEEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L05
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
jmp       short M02_L04
M02_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L03
 
mov       rcx,rbx
call      qword ptr [7FFF7E62CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M02_L00
M02_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,1A267806B00
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF7E62C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
jmp       short M03_L07
M03_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L06
 
mov       rcx,rdi
call      qword ptr [7FFF7E62CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M03_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M03_L02
jmp       short M03_L09
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FFF7E61EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,1E2F94C0008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFF7EAFEEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,1A267806B00
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF7E62C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFF7EAFEE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FFF7E62C1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FFF7EAFEE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,189AF006168
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FFF7EB2E478]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FFF7EDE59C8]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FFF7EB1E958]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FFF7E3B41F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FFF7EB1EEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M02_L03
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
M02_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M02_L00
M02_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L05
 
mov       rcx,rbx
call      qword ptr [7FFF7E64CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L02
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,189AF006B00
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF7E64C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
M03_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M03_L02
jmp       short M03_L09
M03_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L07
 
mov       rcx,rdi
call      qword ptr [7FFF7E64CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M03_L04
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FFF7E63EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,1CA40E70008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFF7EB1EEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,189AF006B00
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF7E64C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFF7EB1EE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FFF7E64C1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FFF7EB1EE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,249EB408160
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FFF7EB0E518]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FFF7EDC59C8]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FFF7EAFE958]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FFF7E3941F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FFF7EAFEEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L05
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
jmp       short M02_L04
M02_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L03
 
mov       rcx,rbx
call      qword ptr [7FFF7E62CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M02_L00
M02_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,249EB408AF8
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF7E62C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
jmp       short M03_L07
M03_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L06
 
mov       rcx,rdi
call      qword ptr [7FFF7E62CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M03_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M03_L02
jmp       short M03_L09
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FFF7E61EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,28A7D390008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFF7EAFEEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,249EB408AF8
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF7E62C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFF7EAFEE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FFF7E62C1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FFF7EAFEE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,233B7408160
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FFF7EB0E518]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FFF7EDC6B98]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FFF7EAFE958]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FFF7E3941F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FFF7EAFEEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M02_L03
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
M02_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M02_L00
M02_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L05
 
mov       rcx,rbx
call      qword ptr [7FFF7E62CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L02
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,233B7408AF8
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF7E62C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
M03_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M03_L02
jmp       short M03_L09
M03_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L07
 
mov       rcx,rdi
call      qword ptr [7FFF7E62CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M03_L04
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FFF7E61EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,27449380008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFF7EAFEEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,233B7408AF8
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF7E62C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFF7EAFEE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FFF7E62C1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FFF7EAFEE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,15F99C08160
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FFF7EB1E3D8]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FFF7EDD6DF0]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FFF7EB0EDC0]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FFF7E3A41F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FFF7EB0F330]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L05
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
jmp       short M02_L04
M02_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L03
 
mov       rcx,rbx
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M02_L00
M02_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,15F99C08AF8
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF7E63C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
jmp       short M03_L07
M03_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L06
 
mov       rcx,rdi
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M03_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M03_L02
jmp       short M03_L09
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FFF7E62EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,1A027AA0008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFF7EB0F330]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,15F99C08AF8
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF7E63C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFF7EB0F300]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FFF7E63C1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FFF7EB0F300]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,21068C08160
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FFF7EB2E518]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FFF7EDE6B98]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FFF7EB1E958]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FFF7E3B41F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FFF7EB1EEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M02_L03
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
M02_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M02_L00
M02_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L05
 
mov       rcx,rbx
call      qword ptr [7FFF7E64CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L02
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,21068C08AF8
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF7E64C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
M03_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M03_L02
jmp       short M03_L09
M03_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L07
 
mov       rcx,rdi
call      qword ptr [7FFF7E64CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M03_L04
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FFF7E63EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,250FACC0008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFF7EB1EEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,21068C08AF8
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF7E64C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFF7EB1EE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FFF7E64C1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FFF7EB1EE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,1F31D406168
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FFF7EB1E3F8]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FFF7EDD6B98]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FFF7EB0ECE8]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FFF7E3A41F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FFF7EB0F258]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M02_L03
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
M02_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M02_L00
M02_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L05
 
mov       rcx,rbx
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L02
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,1F31D406B00
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF7E63C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
M03_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M03_L02
jmp       short M03_L09
M03_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L07
 
mov       rcx,rdi
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M03_L04
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FFF7E62EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,233AF170008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFF7EB0F258]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,1F31D406B00
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF7E63C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFF7EB0F228]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FFF7E63C1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FFF7EB0F228]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L04
M00_L00
 
mov       ecx,[rsi+1C]
add       ecx,[rsi+18]
test      ecx,ecx
jle       short M00_L01
mov       ecx,[rsi+18]
mov       rdx,[rsi+8]
cmp       [rdx+8],ecx
ja        near ptr M00_L08
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FFF7E64C3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L01
 
mov       rcx,r15
mov       r8,r13
mov       rdx,2E5F16F0210
call      qword ptr [7FFF7E3B6B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+30]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L02
 
cmp       qword ptr [rax+8],0
jne       short M00_L03
mov       r8,2A563800438
cmp       qword ptr [r8],0
jne       short M00_L03
mov       r8,2A563800418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L03
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L04
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
jbe       short M00_L06
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFF7E64CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
cmp       ebp,[rdi+44]
jne       near ptr M00_L11
M00_L05
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L09
mov       rcx,rsi
call      qword ptr [7FFF7E63EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L06
 
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M00_L10
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L07
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M00_L07
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L08
 
mov       ecx,ecx
mov       word ptr [rdx+rcx*2+10],2C
inc       dword ptr [rsi+18]
jmp       near ptr M00_L01
M00_L09
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       short M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        near ptr M00_L05
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L10
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L07
M00_L11
 
call      qword ptr [7FFF7E5AEFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L02
M00_L13
 
call      qword ptr [7FFF7E554030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L03
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FFF7E64CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      System.String.FastAllocateString(Int32)
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF7E3B6B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FFF7E5AEF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF7E3B6B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF7E3B6B08]; System.String.Concat(System.String, System.String)
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E64CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8FF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E5AE9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E5AE9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E264000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8FF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E46D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2E5F16F0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L03
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M05_L00
 
ret
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M05_L00
M05_L02
 
test      r8,r8
je        short M05_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M05_L06
jmp       short M05_L00
M05_L03
 
cmp       r8,40
ja        short M05_L07
M05_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L11
M05_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L00
M05_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M05_L00
M05_L07
 
cmp       r8,800
ja        short M05_L10
mov       r9,r8
shr       r9,6
M05_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L08
and       r8,3F
cmp       r8,10
ja        short M05_L04
jmp       short M05_L05
M05_L09
 
cmp       rcx,rdx
je        near ptr M05_L00
M05_L10
 
jmp       qword ptr [7FFF7E465B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L05
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FFF8DDF41F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FFF8DE07B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FFF8DE08B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L05
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FFF7E62C3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,1AA35550210
call      qword ptr [7FFF7E396B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+38]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,169A3400438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,169A3400418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L05
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
jbe       near ptr M00_L08
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFF7E62CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L05
 
cmp       ebp,[rdi+44]
jne       near ptr M00_L11
M00_L06
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L07
mov       rcx,rsi
call      qword ptr [7FFF7E61EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L07
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       near ptr M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L06
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L08
 
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L10
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L09
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       near ptr M00_L05
M00_L10
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L09
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L09
M00_L11
 
call      qword ptr [7FFF7E58EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FFF7E534030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FFF7E62CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      System.String.FastAllocateString(Int32)
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF7E396B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FFF7E58EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF7E396B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF7E396B08]; System.String.Concat(System.String, System.String)
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E62CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8DF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E44D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF7E58E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF7E58E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E244000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8DF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E44D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1AA35550008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L03
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M05_L00
 
ret
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M05_L00
M05_L02
 
test      r8,r8
je        short M05_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M05_L06
jmp       short M05_L00
M05_L03
 
cmp       r8,40
ja        short M05_L07
M05_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L11
M05_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L00
M05_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M05_L00
M05_L07
 
cmp       r8,800
ja        short M05_L10
mov       r9,r8
shr       r9,6
M05_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L08
and       r8,3F
cmp       r8,10
ja        short M05_L04
jmp       short M05_L05
M05_L09
 
cmp       rcx,rdx
je        near ptr M05_L00
M05_L10
 
jmp       qword ptr [7FFF7E445B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L05
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FFF8DDF41F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FFF8DE07B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FFF8DE08B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L08
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FFF7E65C3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,2CB191F0210
call      qword ptr [7FFF7E3C6B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+30]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,28A8B400438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,28A8B400418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L08
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L07
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L06
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L05
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L08
M00_L06
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L05
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L05
M00_L07
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFF7E65CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L08
 
cmp       ebp,[rdi+44]
jne       short M00_L11
M00_L09
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L10
mov       rcx,rsi
call      qword ptr [7FFF7E64EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L10
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       short M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L09
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L11
 
call      qword ptr [7FFF7E5BEFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FFF7E564030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FFF7E65CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      System.String.FastAllocateString(Int32)
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF7E3C6B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FFF7E5BEF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF7E3C6B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF7E3C6B08]; System.String.Concat(System.String, System.String)
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M03_L06
jmp       short M03_L00
M03_L03
 
cmp       r8,40
ja        short M03_L07
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L11
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M03_L00
M03_L07
 
cmp       r8,800
ja        short M03_L10
mov       r9,r8
shr       r9,6
M03_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L08
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L09
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L10
 
jmp       qword ptr [7FFF7E475B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,edi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E65CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FFF7E5BE9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FFF7E5BE9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,2CB191F0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FFF8DDF41F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FFF8DE07B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FFF8DE08B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L08
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FFF7E63C3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,175253F0210
call      qword ptr [7FFF7E3A6B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+30]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,13497400438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,13497400418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L08
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L07
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L06
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L05
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L08
M00_L06
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L05
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L05
M00_L07
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L08
 
cmp       ebp,[rdi+44]
jne       short M00_L11
M00_L09
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L10
mov       rcx,rsi
call      qword ptr [7FFF7E62EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L10
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       short M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L09
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L11
 
call      qword ptr [7FFF7E59EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FFF7E544030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FFF7E63CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      System.String.FastAllocateString(Int32)
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF7E3A6B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FFF7E59EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF7E3A6B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF7E3A6B08]; System.String.Concat(System.String, System.String)
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M03_L06
jmp       short M03_L00
M03_L03
 
cmp       r8,40
ja        short M03_L07
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L11
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M03_L00
M03_L07
 
cmp       r8,800
ja        short M03_L10
mov       r9,r8
shr       r9,6
M03_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L08
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L09
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L10
 
jmp       qword ptr [7FFF7E455B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,edi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E63CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8EF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FFF7E59E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FFF7E59E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8EF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,175253F0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FFF8DDF41F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FFF8DE07B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FFF8DE08B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L08
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FFF7E63C3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,23DB8790210
call      qword ptr [7FFF7E3A6B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+38]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,1FD26800438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,1FD26800418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L08
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L07
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L06
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L05
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L08
M00_L06
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L05
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L05
M00_L07
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L08
 
cmp       ebp,[rdi+44]
jne       short M00_L11
M00_L09
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L10
mov       rcx,rsi
call      qword ptr [7FFF7E62EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L10
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       short M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L09
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L11
 
call      qword ptr [7FFF7E59EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FFF7E544030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FFF7E63CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      System.String.FastAllocateString(Int32)
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF7E3A6B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FFF7E59EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF7E3A6B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF7E3A6B08]; System.String.Concat(System.String, System.String)
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L00
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M03_L02
M03_L00
 
test      r8,r8
je        short M03_L02
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M03_L02
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M03_L02
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M03_L02
 
ret
M03_L03
 
cmp       r8,40
ja        short M03_L06
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L10
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L02
M03_L06
 
cmp       r8,800
ja        short M03_L09
mov       r9,r8
shr       r9,6
M03_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L07
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L08
 
cmp       rcx,rdx
je        short M03_L02
M03_L09
 
jmp       qword ptr [7FFF7E455B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,edi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E63CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8EF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FFF7E59E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FFF7E59E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8EF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,23DB8790008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FFF8DDF41F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FFF8DE07B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FFF8DE08B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L08
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FFF7E63C3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,1D2EA6E0210
call      qword ptr [7FFF7E3A6B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+30]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,19258800438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,19258800418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L08
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L07
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L06
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L05
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L08
M00_L06
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L05
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L05
M00_L07
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L08
 
cmp       ebp,[rdi+44]
jne       short M00_L11
M00_L09
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L10
mov       rcx,rsi
call      qword ptr [7FFF7E62EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L10
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       short M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L09
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L11
 
call      qword ptr [7FFF7E59EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FFF7E544030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FFF7E63CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      System.String.FastAllocateString(Int32)
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF7E3A6B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FFF7E59EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF7E3A6B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF7E3A6B08]; System.String.Concat(System.String, System.String)
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M03_L06
jmp       short M03_L00
M03_L03
 
cmp       r8,40
ja        short M03_L07
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L11
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M03_L00
M03_L07
 
cmp       r8,800
ja        short M03_L10
mov       r9,r8
shr       r9,6
M03_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L08
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L09
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L10
 
jmp       qword ptr [7FFF7E455B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,edi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E63CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8EF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FFF7E59E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FFF7E59E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8EF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,1D2EA6E0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FFF8DDF41F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FFF8DE07B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FFF8DE08B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L08
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FFF7E65C3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,18A21B40210
call      qword ptr [7FFF7E3C6B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+30]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,14993C00438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,14993C00418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r13d,[r15+8]
test      r13d,r13d
je        short M00_L08
mov       r8,[rsi+8]
mov       r12d,[rsi+18]
lea       ecx,[r12+r13]
cmp       ecx,[r8+8]
ja        short M00_L07
movsxd    rcx,r12d
lea       rcx,[r8+rcx*2+10]
cmp       r13d,2
jle       short M00_L06
movsxd    r8,r13d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L05
 
add       r13d,r12d
mov       [rsi+18],r13d
jmp       short M00_L08
M00_L06
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r13d,2
je        near ptr M00_L14
jmp       short M00_L05
M00_L07
 
mov       rcx,rsi
mov       r8d,r13d
call      qword ptr [7FFF7E65CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L08
 
cmp       ebp,[rdi+44]
jne       short M00_L11
M00_L09
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L10
mov       rcx,rsi
call      qword ptr [7FFF7E64EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       r13,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[r13+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [r13+8],rcx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M00_L10
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       short M00_L15
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L09
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L11
 
call      qword ptr [7FFF7E5BEFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FFF7E564030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
jmp       near ptr M00_L05
M00_L15
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FFF7E65CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      System.String.FastAllocateString(Int32)
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF7E3C6B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FFF7E5BEF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF7E3C6B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF7E3C6B08]; System.String.Concat(System.String, System.String)
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M03_L06
jmp       short M03_L00
M03_L03
 
cmp       r8,40
ja        short M03_L07
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L11
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M03_L00
M03_L07
 
cmp       r8,800
ja        short M03_L10
mov       r9,r8
shr       r9,6
M03_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L08
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L09
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L10
 
jmp       qword ptr [7FFF7E475B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,edi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E65CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FFF7E5BE9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FFF7E5BE9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E475B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E274000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E90F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E47D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,18A21B40008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FFF8DDF41F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FFF8DE07B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FFF8DE08B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L08
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FFF7E63C3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,15A2C340210
call      qword ptr [7FFF7E3A6B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+40]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,1199A400438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,1199A400418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r13d,[r15+8]
test      r13d,r13d
je        short M00_L08
mov       r8,[rsi+8]
mov       r12d,[rsi+18]
lea       ecx,[r12+r13]
cmp       ecx,[r8+8]
ja        short M00_L07
movsxd    rcx,r12d
lea       rcx,[r8+rcx*2+10]
cmp       r13d,2
jle       short M00_L06
movsxd    r8,r13d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L05
 
add       r13d,r12d
mov       [rsi+18],r13d
jmp       short M00_L08
M00_L06
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r13d,2
je        near ptr M00_L14
jmp       short M00_L05
M00_L07
 
mov       rcx,rsi
mov       r8d,r13d
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L08
 
cmp       ebp,[rdi+44]
jne       short M00_L11
M00_L09
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L10
mov       rcx,rsi
call      qword ptr [7FFF7E62EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       r13,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[r13+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [r13+8],rcx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M00_L10
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       short M00_L15
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L09
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L11
 
call      qword ptr [7FFF7E59EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FFF7E544030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
jmp       near ptr M00_L05
M00_L15
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FFF7E63CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      System.String.FastAllocateString(Int32)
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF7E3A6B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FFF7E59EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF7E3A6B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF7E3A6B08]; System.String.Concat(System.String, System.String)
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M03_L06
jmp       short M03_L00
M03_L03
 
cmp       r8,40
ja        short M03_L07
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L11
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M03_L00
M03_L07
 
cmp       r8,800
ja        short M03_L10
mov       r9,r8
shr       r9,6
M03_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L08
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L09
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L10
 
jmp       qword ptr [7FFF7E455B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,edi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF7E63CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8EF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FFF7E59E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FFF7E59E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFF7E254000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF7E8EF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF7E45D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,15A2C340008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FFF8DDF41F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FFF8DE07B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FFF8DE08B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FFF7EDD5218]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-48],rax
mov       [rbp-38],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,23C3D806B00
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-38],rcx
cmp       qword ptr [rbp-38],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-38]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-38]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-38]
M01_L01
 
xor       ecx,ecx
mov       [rbp-38],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FFF7E63C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-40],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L09
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       edi,[r8+8]
test      edi,edi
je        short M01_L06
mov       r8,[r14+8]
mov       r13d,[r14+18]
lea       ecx,[rdi+r13]
cmp       ecx,[r8+8]
ja        short M01_L05
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       edi,2
jle       short M01_L04
movsxd    r8,edi
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
add       edi,r13d
mov       [r14+18],edi
jmp       short M01_L06
M01_L04
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       edi,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L05
 
mov       rcx,r14
mov       r8d,edi
call      qword ptr [7FFF7E63CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L10
cmp       ecx,r15d
jle       short M01_L08
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L07
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FFF7E63C3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M01_L08
 
add       r15d,1
jo        short M01_L10
cmp       esi,r15d
jg        near ptr M01_L02
M01_L09
 
mov       rcx,r14
call      qword ptr [7FFF7E62EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-48],rax
jmp       short M01_L11
M01_L10
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-48]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,27CCB540008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-38]
cmp       [rcx],ecx
call      qword ptr [7FFF7EB0EBB0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,23C3D806B00
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       r13,[rbp-40]
mov       rcx,[r13+8]
mov       ecx,[rcx+8]
add       ecx,[r13+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFF7E63C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-40]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       r13,[rbp-40]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,r13
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,r13
cmp       [rcx],ecx
call      qword ptr [7FFF7EB0EB80]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FFF7EDB5218]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,155AF40AAF0
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FFF7E54D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L09
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
jmp       short M01_L06
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L05
 
mov       rcx,r14
call      qword ptr [7FFF7E54D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L10
cmp       ecx,r15d
jle       short M01_L08
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L07
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FFF7E54D2F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M01_L08
 
add       r15d,1
jo        short M01_L10
cmp       esi,r15d
jg        near ptr M01_L02
M01_L09
 
mov       rcx,r14
call      qword ptr [7FFF7E5596D0]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L10
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,196412F0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFF7EAEEF40]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,155AF40AAF0
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF7E54D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF7EAEEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FFF7EDE5938]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,1C347C0AAF0
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FFF7E57D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L08
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
M01_L04
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L09
cmp       ecx,r15d
jle       short M01_L06
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L10
mov       eax,eax
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L06
M01_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L06
 
add       r15d,1
jo        short M01_L09
cmp       esi,r15d
jg        near ptr M01_L02
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
call      qword ptr [7FFF7E57D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L04
M01_L08
 
mov       rcx,r14
call      qword ptr [7FFF7E5896D0]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L09
 
call      CORINFO_HELP_OVERFLOW
M01_L10
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FFF7E57D2F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
jmp       short M01_L06
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,203D5CC0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFF7EB1EEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,1C347C0AAF0
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF7E57D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF7EB1EE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FFF7EDC5938]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,1AA0B802B28
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FFF7E55D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L08
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
M01_L04
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L09
cmp       ecx,r15d
jle       short M01_L06
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L10
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L06
M01_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L06
 
add       r15d,1
jo        short M01_L09
cmp       esi,r15d
jg        near ptr M01_L02
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
call      qword ptr [7FFF7E55D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L04
M01_L08
 
mov       rcx,r14
call      qword ptr [7FFF7E5696D0]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L09
 
call      CORINFO_HELP_OVERFLOW
M01_L10
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FFF7E55D2F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
jmp       short M01_L06
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,1EA95520008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFF7EAFEF40]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,1AA0B802B28
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF7E55D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF7EAFEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FFF7EDC6D60]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,27061C0AAF0
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FFF7E55D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L09
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
jmp       short M01_L06
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L05
 
mov       rcx,r14
call      qword ptr [7FFF7E55D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L10
cmp       ecx,r15d
jle       short M01_L08
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L07
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FFF7E55D2F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M01_L08
 
add       r15d,1
jo        short M01_L10
cmp       esi,r15d
jg        near ptr M01_L02
M01_L09
 
mov       rcx,r14
call      qword ptr [7FFF7E5696D0]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L10
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,2B0F3A00008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFF7EAFEEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,27061C0AAF0
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF7E55D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF7EAFEE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FFF7EDD6D60]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,1BBAFC02B28
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FFF7E56D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L09
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
jmp       short M01_L06
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L05
 
mov       rcx,r14
call      qword ptr [7FFF7E56D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L10
cmp       ecx,r15d
jle       short M01_L08
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L07
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FFF7E56D2F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M01_L08
 
add       r15d,1
jo        short M01_L10
cmp       esi,r15d
jg        near ptr M01_L02
M01_L09
 
mov       rcx,r14
call      qword ptr [7FFF7E5796D0]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L10
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,1FC35C70008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFF7EB0EEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,1BBAFC02B28
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF7E56D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF7EB0EE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FFF7EDD6D60]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,174DFC0AAF0
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FFF7E56D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L09
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
jmp       short M01_L06
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L05
 
mov       rcx,r14
call      qword ptr [7FFF7E56D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L10
cmp       ecx,r15d
jle       short M01_L08
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L07
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FFF7E56D2F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M01_L08
 
add       r15d,1
jo        short M01_L10
cmp       esi,r15d
jg        near ptr M01_L02
M01_L09
 
mov       rcx,r14
call      qword ptr [7FFF7E5796D0]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L10
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,1B571A20008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFF7EB0EEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,174DFC0AAF0
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF7E56D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF7EB0EE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FFF7EDE6D60]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,2501AC02B28
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FFF7E57D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L09
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
jmp       short M01_L06
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L05
 
mov       rcx,r14
call      qword ptr [7FFF7E57D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L10
cmp       ecx,r15d
jle       short M01_L08
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L07
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FFF7E57D2F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M01_L08
 
add       r15d,1
jo        short M01_L10
cmp       esi,r15d
jg        near ptr M01_L02
M01_L09
 
mov       rcx,r14
call      qword ptr [7FFF7E5896D0]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L10
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,290A48E0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFF7EB1EF40]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,2501AC02B28
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF7E57D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF7EB1EF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FFF7EDD52A8]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FFF7E3A41F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M01_L03
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
M01_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M01_L00
M01_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L05
 
mov       rcx,rbx
call      qword ptr [7FFF7E56D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L02
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,21EE2802B28
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-30]
M02_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF7E56D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r14d,[r8+8]
test      r14d,r14d
je        short M02_L04
mov       r8,[rdi+8]
mov       r15d,[rdi+18]
lea       ecx,[r15+r14]
cmp       ecx,[r8+8]
ja        short M02_L07
movsxd    rcx,r15d
lea       rcx,[r8+rcx*2+10]
cmp       r14d,2
jle       short M02_L06
movsxd    r8,r14d
add       r8,r8
call      qword ptr [7FFF7E455B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
add       r14d,r15d
mov       [rdi+18],r14d
M02_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M02_L02
jmp       short M02_L09
M02_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L06
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r14d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L07
 
mov       rcx,rdi
mov       r8d,r14d
call      qword ptr [7FFF7E56D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L04
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FFF7E5796D0]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
mov       rax,25F6C7F0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFF7EB0EEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,21EE2802B28
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-38]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF7E56D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-38]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFF7EB0EE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FFF7EDE52A8]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FFF7E3B41F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M01_L03
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
M01_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M01_L00
M01_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L05
 
mov       rcx,rbx
call      qword ptr [7FFF7E57D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L02
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,17B06C02B28
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF7E57D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
jmp       short M02_L07
M02_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L06
 
mov       rcx,rdi
call      qword ptr [7FFF7E57D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M02_L02
jmp       short M02_L09
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FFF7E5896D0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,1BB90B60008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFF7EB1EEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,17B06C02B28
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF7E57D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFF7EB1EE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FFF7EDC59C8]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FFF7E3941F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M01_L05
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
jmp       short M01_L04
M01_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
call      qword ptr [7FFF7E55D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M01_L00
M01_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,21DAF408AF8
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF7E55D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
jmp       short M02_L07
M02_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L06
 
mov       rcx,rdi
call      qword ptr [7FFF7E55D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M02_L02
jmp       short M02_L09
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FFF7E5696D0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,25E412F0008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFF7EAFEF40]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,21DAF408AF8
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF7E55D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFF7EAFEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FFF7EDB59C8]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FFF7E3841F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M01_L05
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
jmp       short M01_L04
M01_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
call      qword ptr [7FFF7E54D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M01_L00
M01_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,27404008AF8
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF7E54D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
jmp       short M02_L07
M02_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L06
 
mov       rcx,rdi
call      qword ptr [7FFF7E54D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M02_L02
jmp       short M02_L09
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FFF7E5596D0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,2B495E30008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFF7EAEEF40]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,27404008AF8
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF7E54D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFF7EAEEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FFF7EDE6B98]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FFF7E3B41F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M01_L05
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
jmp       short M01_L04
M01_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
call      qword ptr [7FFF7E57D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M01_L00
M01_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,2BF48408AF8
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF7E57D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E465B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
jmp       short M02_L07
M02_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L06
 
mov       rcx,rdi
call      qword ptr [7FFF7E57D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M02_L02
jmp       short M02_L09
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FFF7E5896D0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,2FFDA410008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFF7EB1EEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,2BF48408AF8
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF7E57D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFF7EB1EE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FFF7EDC6DF0]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FFF7E3941F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M01_L03
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
M01_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M01_L00
M01_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L05
 
mov       rcx,rbx
call      qword ptr [7FFF7E55D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L02
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,25933402B28
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF7E55D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
jmp       short M02_L07
M02_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L06
 
mov       rcx,rdi
call      qword ptr [7FFF7E55D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M02_L02
jmp       short M02_L09
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FFF7E5696D0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,299B9520008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFF7EAFF330]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,25933402B28
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF7E55D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFF7EAFF300]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FFF7EDC6B98]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FFF7E3941F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M01_L03
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
M01_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M01_L00
M01_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L05
 
mov       rcx,rbx
call      qword ptr [7FFF7E55D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L02
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,1F262C02B28
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF7E55D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E445B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
jmp       short M02_L07
M02_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L06
 
mov       rcx,rdi
call      qword ptr [7FFF7E55D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M02_L02
jmp       short M02_L09
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FFF7E5696D0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,232ECB10008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFF7EAFEEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,1F262C02B28
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF7E55D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFF7EAFEE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FFF7EDB6B98]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FFF7E3841F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M01_L03
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
M01_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M01_L00
M01_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L05
 
mov       rcx,rbx
call      qword ptr [7FFF7E54D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L02
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,23002002B28
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF7E54D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF7E435B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
M02_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M02_L02
jmp       short M02_L09
M02_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L07
 
mov       rcx,rdi
call      qword ptr [7FFF7E54D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L04
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FFF7E5596D0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,27087E00008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFF7EAEEF40]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,23002002B28
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF7E54D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFF7EAEEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret